怎样把文件逐一的从这个文件夹拷贝到另一个文件夹?
因为要根据文件名在另一个文件夹里进行分类,所以要一个一个判断
7 个解决方案
#1
使用 File.Copy函数即可
#2
System.IO.File.Copy("sourceFilename","destFilename")
#3
/// <summary>
/// 复制文件夹下面的所有内容
/// </summary>
/// <param name="srcPath"></param>
/// <param name="aimPath"></param>
public static void CopyDir(string srcPath,string aimPath)
{
// try
// {
// 检查目标目录是否以目录分割字符结束如果不是则添加之
if(aimPath[aimPath.Length-1] != System.IO.Path.DirectorySeparatorChar)
aimPath += System.IO.Path.DirectorySeparatorChar;
// 判断目标目录是否存在如果不存在则新建之
if(!System.IO.Directory.Exists(aimPath)) System.IO.Directory.CreateDirectory(aimPath);
// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
// 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
// string[] fileList = System.IO.Directory.GetFiles(srcPath);
string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
// 遍历所有的文件和目录
foreach(string file in fileList)
{
// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
if(System.IO.Directory.Exists(file))
CopyDir(file,aimPath+System.IO.Path.GetFileName(file));
// 否则直接Copy文件
else
System.IO.File.Copy(file,aimPath+System.IO.Path.GetFileName(file),true);
}
// }
// catch (Exception e)
// {
// Web.Components.Error.Log(e.ToString());
// }
}
/// 复制文件夹下面的所有内容
/// </summary>
/// <param name="srcPath"></param>
/// <param name="aimPath"></param>
public static void CopyDir(string srcPath,string aimPath)
{
// try
// {
// 检查目标目录是否以目录分割字符结束如果不是则添加之
if(aimPath[aimPath.Length-1] != System.IO.Path.DirectorySeparatorChar)
aimPath += System.IO.Path.DirectorySeparatorChar;
// 判断目标目录是否存在如果不存在则新建之
if(!System.IO.Directory.Exists(aimPath)) System.IO.Directory.CreateDirectory(aimPath);
// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
// 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
// string[] fileList = System.IO.Directory.GetFiles(srcPath);
string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
// 遍历所有的文件和目录
foreach(string file in fileList)
{
// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
if(System.IO.Directory.Exists(file))
CopyDir(file,aimPath+System.IO.Path.GetFileName(file));
// 否则直接Copy文件
else
System.IO.File.Copy(file,aimPath+System.IO.Path.GetFileName(file),true);
}
// }
// catch (Exception e)
// {
// Web.Components.Error.Log(e.ToString());
// }
}
#4
File.Copy函数的第二个参数是不是不能是路径。我这总出错,说找不到文件
#5
能帮忙看下哪错了吗?红色对方报错
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;
public partial class ConPic : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DirectoryInfo di = new DirectoryInfo("d:\\aa\\Pic");
FileInfo[] fiArr = di.GetFiles();
foreach (FileInfo fri in fiArr)
{
string OldName = fri.Name;
Response.Write(OldName);
string[] domain1 = OldName.Split('.');
string domain = domain1[1].ToString();
string dir = Server.MapPath("./PicDomain/" + domain);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
string BasePicPath = "d:\\aa\\PicDomain\\" + domain + "\\";
string fName = BasePicPath + OldName;
if (!File.Exists(fName))
{
// File.Create(fName);
File.Copy(OldName,fName, true);
}
}
}
}
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;
public partial class ConPic : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DirectoryInfo di = new DirectoryInfo("d:\\aa\\Pic");
FileInfo[] fiArr = di.GetFiles();
foreach (FileInfo fri in fiArr)
{
string OldName = fri.Name;
Response.Write(OldName);
string[] domain1 = OldName.Split('.');
string domain = domain1[1].ToString();
string dir = Server.MapPath("./PicDomain/" + domain);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
string BasePicPath = "d:\\aa\\PicDomain\\" + domain + "\\";
string fName = BasePicPath + OldName;
if (!File.Exists(fName))
{
// File.Create(fName);
File.Copy(OldName,fName, true);
}
}
}
}
#6
两个都应该是路径。
#7
OK了
#1
使用 File.Copy函数即可
#2
System.IO.File.Copy("sourceFilename","destFilename")
#3
/// <summary>
/// 复制文件夹下面的所有内容
/// </summary>
/// <param name="srcPath"></param>
/// <param name="aimPath"></param>
public static void CopyDir(string srcPath,string aimPath)
{
// try
// {
// 检查目标目录是否以目录分割字符结束如果不是则添加之
if(aimPath[aimPath.Length-1] != System.IO.Path.DirectorySeparatorChar)
aimPath += System.IO.Path.DirectorySeparatorChar;
// 判断目标目录是否存在如果不存在则新建之
if(!System.IO.Directory.Exists(aimPath)) System.IO.Directory.CreateDirectory(aimPath);
// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
// 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
// string[] fileList = System.IO.Directory.GetFiles(srcPath);
string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
// 遍历所有的文件和目录
foreach(string file in fileList)
{
// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
if(System.IO.Directory.Exists(file))
CopyDir(file,aimPath+System.IO.Path.GetFileName(file));
// 否则直接Copy文件
else
System.IO.File.Copy(file,aimPath+System.IO.Path.GetFileName(file),true);
}
// }
// catch (Exception e)
// {
// Web.Components.Error.Log(e.ToString());
// }
}
/// 复制文件夹下面的所有内容
/// </summary>
/// <param name="srcPath"></param>
/// <param name="aimPath"></param>
public static void CopyDir(string srcPath,string aimPath)
{
// try
// {
// 检查目标目录是否以目录分割字符结束如果不是则添加之
if(aimPath[aimPath.Length-1] != System.IO.Path.DirectorySeparatorChar)
aimPath += System.IO.Path.DirectorySeparatorChar;
// 判断目标目录是否存在如果不存在则新建之
if(!System.IO.Directory.Exists(aimPath)) System.IO.Directory.CreateDirectory(aimPath);
// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
// 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
// string[] fileList = System.IO.Directory.GetFiles(srcPath);
string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
// 遍历所有的文件和目录
foreach(string file in fileList)
{
// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
if(System.IO.Directory.Exists(file))
CopyDir(file,aimPath+System.IO.Path.GetFileName(file));
// 否则直接Copy文件
else
System.IO.File.Copy(file,aimPath+System.IO.Path.GetFileName(file),true);
}
// }
// catch (Exception e)
// {
// Web.Components.Error.Log(e.ToString());
// }
}
#4
File.Copy函数的第二个参数是不是不能是路径。我这总出错,说找不到文件
#5
能帮忙看下哪错了吗?红色对方报错
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;
public partial class ConPic : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DirectoryInfo di = new DirectoryInfo("d:\\aa\\Pic");
FileInfo[] fiArr = di.GetFiles();
foreach (FileInfo fri in fiArr)
{
string OldName = fri.Name;
Response.Write(OldName);
string[] domain1 = OldName.Split('.');
string domain = domain1[1].ToString();
string dir = Server.MapPath("./PicDomain/" + domain);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
string BasePicPath = "d:\\aa\\PicDomain\\" + domain + "\\";
string fName = BasePicPath + OldName;
if (!File.Exists(fName))
{
// File.Create(fName);
File.Copy(OldName,fName, true);
}
}
}
}
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;
public partial class ConPic : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DirectoryInfo di = new DirectoryInfo("d:\\aa\\Pic");
FileInfo[] fiArr = di.GetFiles();
foreach (FileInfo fri in fiArr)
{
string OldName = fri.Name;
Response.Write(OldName);
string[] domain1 = OldName.Split('.');
string domain = domain1[1].ToString();
string dir = Server.MapPath("./PicDomain/" + domain);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
string BasePicPath = "d:\\aa\\PicDomain\\" + domain + "\\";
string fName = BasePicPath + OldName;
if (!File.Exists(fName))
{
// File.Create(fName);
File.Copy(OldName,fName, true);
}
}
}
}
#6
两个都应该是路径。
#7
OK了