+ -
当前位置:首页 → 问答吧 → 怎么将一个目录的文件都复制到另一个文件夹

怎么将一个目录的文件都复制到另一个文件夹

时间:2011-12-05

来源:互联网

怎么将一个目录的文件都复制到另一个文件夹

作者: yuzhijiang3   发布时间: 2011-12-05

给你个具体的例子:

代码示例:递归遍历文件夹实现目录拷贝
http://blog.csdn.net/xinyaping/article/details/6681628

C# code


        public static bool CopyDirectory(string pathSrc, string pathDst)
        {
            if(!Directory.Exists(pathSrc))
            {
                return false;
            }
            
            CreateFullPath(pathDst);
            
            DirectoryInfo directorySrc = new DirectoryInfo(pathSrc);
            DirectoryInfo directoryDst = new DirectoryInfo(pathDst);
            
            CopyDirectory(directorySrc, directoryDst);
            return true;
        }


        private static bool CreateFullPath(string path)
        {
            try
            {
                if(!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                
                return true;
            }
            catch
            {
                return false;
            }
        }
        

        
        private static void CopyDirectory(DirectoryInfo srcDictionary, DirectoryInfo dstDictionary)
        {
            FileInfo[] srcFiles = srcDictionary.GetFiles();
            foreach(FileInfo srcFile in srcFiles)
            {
                File.Copy(srcFile.FullName, Path.Combine(dstDictionary.FullName, srcFile.Name), true);
            }
            
            DirectoryInfo[] directorySrcArray = srcDictionary.GetDirectories();
            foreach(DirectoryInfo directorySrc in directorySrcArray)
            {
                string dstDirectoryFullPath = Path.Combine(dstDictionary.FullName, directorySrc.Name);
                DirectoryInfo directoryDst = new DirectoryInfo(dstDirectoryFullPath);
                
                CreateFullPath(directoryDst.FullName);
                
                CopyDirectory(directorySrc, directoryDst);
            }
        } 

作者: XinYaping   发布时间: 2011-12-05

有简单点的吗?代码一多头就晕

作者: yuzhijiang3   发布时间: 2011-12-05

引用 2 楼 yuzhijiang3 的回复:

有简单点的吗?代码一多头就晕


你只用调用这个方法即可:
public static bool CopyDirectory(string pathSrc, string pathDst)

另外两个方法仅仅被上述方法所引用。

从接口上你也应该看得出来,你需要调用的那个方法是public的,另外两个方法是private的。

作者: XinYaping   发布时间: 2011-12-05

先引入:Microsoft.VisualBasic
Microsoft.VisualBasic.Devices.Computer MyComputer = new Microsoft.VisualBasic.Devices.Computer();
MyComputer.FileSystem.CopyDirectory("D:\\gbxjxt","c:\\gbxjxt",true);//将此目录下所有文件及目录一起复制到 c:\gbxjxt

作者: li_qiang_sc   发布时间: 2011-12-05