C# 将所有未知和将来的文件夹移动到特定文件夹
我正在尝试为我的终端服务器创建脚本,该脚本将移动在错误位置创建的所有文件夹及其内容。我不知道这些文件夹将有哪些名称。正如我所注意到的,出于某种原因,在C#中移动文件夹是一个问题。有人能帮我写代码吗?它只是删除我的测试文件夹,没有任何移动C# 将所有未知和将来的文件夹移动到特定文件夹,c#,C#,我正在尝试为我的终端服务器创建脚本,该脚本将移动在错误位置创建的所有文件夹及其内容。我不知道这些文件夹将有哪些名称。正如我所注意到的,出于某种原因,在C#中移动文件夹是一个问题。有人能帮我写代码吗?它只是删除我的测试文件夹,没有任何移动 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using Microsoft.VisualBasic.FileIO;
namespace ConsoleApp1
{
public class Programm
{
public static void Main()
{
string root = @"C:\Users\user1\Desktop";
string[] subdirectoryEntries = Directory.GetDirectories(root);
string destDirname = @"D:\confiscated";
foreach (string path in subdirectoryEntries)
{
FileSystem.MoveDirectory(path, destDirname, true);
}
}
}
}
这是如何做到的:
string startPath = @"YOURSTARTPATH";
string endPath = @"YOURENDPATH";
foreach (string directory in Directory.GetDirectories(startPath))
{
Directory.Move(directory, Path.Combine(endPath, Path.GetFileName(directory)));
}
通过这种方式,您将使用框架类已经提供的来处理目录
无需包括Microsoft.VisualBasic.FileIO这是如何做到的:
string startPath = @"YOURSTARTPATH";
string endPath = @"YOURENDPATH";
foreach (string directory in Directory.GetDirectories(startPath))
{
Directory.Move(directory, Path.Combine(endPath, Path.GetFileName(directory)));
}
通过这种方式,您将使用框架类已经提供的来处理目录
不需要包含Microsoft.VisualBasic.FileIO值得指出的是,OP代码的主要问题是它没有将目录名添加到目标根路径,从而导致源目录中所有子文件夹的内容移动到目标根路径。使用
Path.Combine
解决问题,而不是Directory.Move
。换句话说,FileSystem.MoveDirectory
如果使用正确的路径,也应该可以正常工作。也就是说,System.IO
名称空间当然是处理文件和文件夹的标准方式,所以我会选择目录。Move
太多了。THX!Path.Combine+FileSystem.MoveDirectory工作正常!目录。移动不在磁盘之间移动文件和文件夹。值得指出的是,OP代码的主要问题是它没有将目录名添加到目标根路径,从而导致源目录中所有子文件夹的内容移动到目标根路径。使用Path.Combine
解决问题,而不是Directory.Move
。换句话说,FileSystem.MoveDirectory
如果使用正确的路径,也应该可以正常工作。也就是说,System.IO
名称空间当然是处理文件和文件夹的标准方式,所以我会选择目录。Move
太多了。THX!Path.Combine+FileSystem.MoveDirectory工作正常!目录。移动-不在磁盘之间移动文件和文件夹。