首页 > 编程 > C# > 正文

C#中实现将指定文件夹下所有内容copy到目标文件夹中

2023-05-15 12:29:32
字体:
来源:转载
供稿:网友

本文给出了一个C#静态方法,用来将指定文件夹下的所有内容拷贝到另外一个文件夹中,在使用时,直接用该方法所在的类名及该方法名进行调用即可。

// ======================================================
// 实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面
// 如果目标文件夹为只读属性就会报错。
// April 18April2005 In STU
// ======================================================
public static void CopyDir(string srcPath,string aimPath)
{
        try
        {
                // 检查目标目录是否以目录分割字符结束如果不是则添加之
                if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar) 
                        aimPath += Path.DirectorySeparatorChar;
                // 判断目标目录是否存在如果不存在则新建之
                if(!Directory.Exists(aimPath)) Directory.CreateDirectory(aimPath);
                        // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
                        // 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
                        // string[] fileList = Directory.GetFiles(srcPath);
                        string[] fileList = Directory.GetFileSystemEntries(srcPath);
                // 遍历所有的文件和目录
                foreach(string file in fileList)
                {
                        // 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
                        if(Directory.Exists(file))
                                CopyDir(file,aimPath+Path.GetFileName(file));
                        // 否则直接Copy文件
                        else
                        File.Copy(file,aimPath+Path.GetFileName(file),true);
                }
        }
        catch (Exception e)
        {
                MessageBox.Show (e.ToString());
        }
}

假设该方法所在的类名称为A,则调用格式为:

A.CopyDir("D://src//","E://aim//");

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表