假设我想在自己内部移动一个文件夹,其中以前的内容是空的,但对于新文件夹,我最好如何使用代码来完成它。通常,在资源管理器中,您可以通过剪切文件夹的内容并将其放置在原始文件夹中创建的新文件夹中来完成此操作。
即
原始路径:C:\Users\Previous
新路径:C:\Users\Previous\ Previous
- cerate临时文件夹:c:\user\temp
- 使用move将目录从c:\user\perior移动到:c:\user\temp
- 使用"从c:\user\temp移动到c:\user\previous"重命名临时文件夹
如果您想将文件夹及其内容移动到具有相同名称的子文件夹,可以执行以下操作:
private void button1_Click(object sender, EventArgs e)
{
CopyContentsToSubFolderWithSameName(@"C:UsersPrevious");
}
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));
}
}
}