我模仿WIN写一个小程序,复制一个文件夹(文件夹中可能有许多子文件夹,子文件夹中还有子文件夹)
首先通过迭代遍历一遍要复制的文件夹存储到DataTable中,DataTable有序号列,有源文件的路径列,有路径属性列(判断是文件还是文件夹),还有上级目录列,还有大小了(如果是文件存储文件大小,如果是文件夹存储0)
2.复制文件夹,我是通过DataTable转DataView,然后通过路径属性列筛选出所有的文件夹。
现在的问题是复制文件夹得时候出现问题了,就是怎么样才能分清父文件夹和子文件夹的路径,怎么样通过计算才能得到正确的子文件夹的路径。PS:谢谢大家!分不够可以狂加!
首先通过迭代遍历一遍要复制的文件夹存储到DataTable中,DataTable有序号列,有源文件的路径列,有路径属性列(判断是文件还是文件夹),还有上级目录列,还有大小了(如果是文件存储文件大小,如果是文件夹存储0)
2.复制文件夹,我是通过DataTable转DataView,然后通过路径属性列筛选出所有的文件夹。
现在的问题是复制文件夹得时候出现问题了,就是怎么样才能分清父文件夹和子文件夹的路径,怎么样通过计算才能得到正确的子文件夹的路径。PS:谢谢大家!分不够可以狂加!
ps:如果没有特殊要求,个人觉得这种方式不是很好的哦,DataTable?那么多的集合怎么不用呢
{
//richTextBox1.Focus(); Directory.Move(@"C:\Users\v-kuzha\Desktop\1.0.0.9", @"C:\Users\v-kuzha\Downloads\1.0.0.9");
}
string srcPath = @"F:\1\aa";string relativePath = null;
int len =Path.GetDirectoryName(srcPath).Length;
DirectoryInfo dirInfo = new DirectoryInfo(srcPath);
FileInfo[] fInfos= dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
string fileName = null;
for (int i = 0; i < fInfos.Length; i++)
{
relativePath = fInfos[i].FullName.Substring(len);
fileName = destPath +relativePath;
string dir=Path.GetDirectoryName(fileName);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
fInfos[i].CopyTo(fileName, true);
}