C# 将所有未知和将来的文件夹移动到特定文件夹

C# 将所有未知和将来的文件夹移动到特定文件夹,c#,C#,我正在尝试为我的终端服务器创建脚本,该脚本将移动在错误位置创建的所有文件夹及其内容。我不知道这些文件夹将有哪些名称。正如我所注意到的,出于某种原因,在C#中移动文件夹是一个问题。有人能帮我写代码吗?它只是删除我的测试文件夹,没有任何移动 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO

我正在尝试为我的终端服务器创建脚本,该脚本将移动在错误位置创建的所有文件夹及其内容。我不知道这些文件夹将有哪些名称。正如我所注意到的,出于某种原因,在C#中移动文件夹是一个问题。有人能帮我写代码吗?它只是删除我的测试文件夹,没有任何移动

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工作正常!目录。移动-不在磁盘之间移动文件和文件夹。