移动文件夹本身的最佳方法是什么?

时间:2013-08-08 12:46:25

标签: c# winapi directory

假设我想在其自身内部移动一个文件夹,其前一个内容为空,但对于新文件夹,我最好如何使用代码进行操作。通常,在资源管理器中,您可以通过剪切文件夹的内容并将其放在原始文件夹中创建的新文件夹中来完成此操作。

  

原始路径:C:\ Users \ Previous

     

新路径:C:\ Users \ Previous \ Previous

2 个答案:

答案 0 :(得分:0)

  1. cerate temp文件夹:c:\ user \ temp
  2. 将目录Move从c:\ user \ previous移动到:c:\ user \ temp
  3. Move的临时文件夹从c:\ user \ temp重命名为c:\ user \ previous

答案 1 :(得分:0)

如果您想将文件夹及其内容移动到具有相同名称的子文件夹,您可以执行以下操作:

private void button1_Click(object sender, EventArgs e)
{
    CopyContentsToSubFolderWithSameName(@"C:\Users\Previous");
}

private void CopyContentsToSubFolderWithSameName(string path)
{
    DirectoryInfo currDir = new DirectoryInfo(path);
    DirectoryInfo subDir =
        Directory.CreateDirectory(Path.Combine(currDir.FullName, currDir.Name));
    IEnumerable<DirectoryInfo> parentFolders = 
        subDir.Parent.EnumerateDirectories();

    // Copy files in the current directory to the destination directory
    foreach (FileInfo file in currDir.GetFiles())
    {
        file.MoveTo(Path.Combine(subDir.FullName, file.Name));
    }

    // Copy directories (including files) in the current directory 
    // to the destination directory
    foreach (DirectoryInfo dir in parentFolders)
    {
        if (dir.Name != subDir.Name)
        {
            dir.MoveTo(Path.Combine(subDir.FullName, dir.Name));
        }
    }
}