2

以前の内容は空であるが新しいフォルダーの場合、フォルダーをそれ自体の内部に移動したいと仮定すると、コードを使用してどのように移動するのが最善でしょうか。通常、エクスプローラーでは、フォルダーのコンテンツを切り取って、元のフォルダー内に作成された新しいフォルダーに配置することでこれを行います。

すなわち

元のパス: C:\Users\Previous

新しいパス: C:\Users\Previous\Previous

4

2 に答える 2

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));
        }
    }
}
于 2013-08-08T13:57:03.843 に答える
0
  1. 一時フォルダーを作成します: c:\user\temp
  2. Move from c:\user\previous to : c:\user\tempでディレクトリを移動します
  3. Move from c:\user\temp to c:\user\previousで一時フォルダーの名前を変更します
于 2013-08-08T12:48:03.430 に答える