asp.net怎样把文件从一个文件夹拷贝到另一个文件夹

时间:2021-08-17 23:09:47
一个文件夹里有很多文件
怎样把文件逐一的从这个文件夹拷贝到另一个文件夹?

因为要根据文件名在另一个文件夹里进行分类,所以要一个一个判断

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());
// }

#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);
            }
        }
         
    }
}

#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());
// }

#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);
            }
        }
         
    }
}

#6


两个都应该是路径。

#7


OK了