我模仿WIN写一个小程序,复制一个文件夹(文件夹中可能有许多子文件夹,子文件夹中还有子文件夹)
首先通过迭代遍历一遍要复制的文件夹存储到DataTable中,DataTable有序号列,有源文件的路径列,有路径属性列(判断是文件还是文件夹),还有上级目录列,还有大小了(如果是文件存储文件大小,如果是文件夹存储0)
2.复制文件夹,我是通过DataTable转DataView,然后通过路径属性列筛选出所有的文件夹。
现在的问题是复制文件夹得时候出现问题了,就是怎么样才能分清父文件夹和子文件夹的路径,怎么样通过计算才能得到正确的子文件夹的路径。PS:谢谢大家!分不够可以狂加!

解决方案 »

  1.   

    你存储的时候可以存储绝对路径呀,每个文件夹都是绝对路径的。
    ps:如果没有特殊要求,个人觉得这种方式不是很好的哦,DataTable?那么多的集合怎么不用呢
      

  2.   

    复制很简单 private void button1_Click(object sender, EventArgs e)
            {
               //richTextBox1.Focus();            Directory.Move(@"C:\Users\v-kuzha\Desktop\1.0.0.9", @"C:\Users\v-kuzha\Downloads\1.0.0.9");
                
            }
      

  3.   

    string destPath=@"E:\ab";
    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);
    }