复制文件夹下所有文件

复制文件夹下所有文件,以及目录结构;一个递归,其他没什么了,直接上代码吧

 1 private static bool CopyFile(string path,string newPath) {
 2             string[] di = Directory.GetDirectories(path);
 3             string[] fi = Directory.GetFiles(path);
 4 
 5             if (!Directory.Exists(newPath)) {
 6                 Directory.CreateDirectory(newPath);
 7             }
 8 
 9             for (int i = 0; i < fi.Length; i++)
10             {
11                 string name = fi[i].Substring(fi[i].LastIndexOf("\\") + 1);
12                 
13                 File.Copy(fi[i], newPath + "\\" + name,true);
14             }
15             foreach (string p in di)
16             {
17                 string ps = p.Substring(p.LastIndexOf("\\"));
18                 CopyFile(p, newPath+ps+"");
19             }
20             return true;
21         }

 我在这里针对上面的代码做一些修改,这要感谢我的一位开源中国的网友,是他提醒了我,这里我就直接引用他的话了

话说这行
string name = fi[i].Substring(fi[i].LastIndexOf("\\") + 1);
改为:string name = Path.GetFileName(fi[i]);
更好吧

stringps = p.Substring(p.LastIndexOf("\\"));
这个也类似

newPath + "\\" + name
这个也应改为System.IO.Path.Combine(newPath, name)
以支持跨平台

针对上面我写的代码,我表示很遗憾,这确实是一大失误,还需要好好学习

posted on 2013-11-14 16:42  源坊  阅读(347)  评论(0编辑  收藏  举报

导航