【问题标题】:Could not find a part of the path 'C:\Test1'找不到路径“C:\Test1”的一部分
【发布时间】:2018-03-28 16:47:38
【问题描述】:

我正在尝试从 xml 文档中读取目录列表并将它们存储到列表中,然后我将获得子目录。我正在对此进行测试,并且能够从 xml 文档中获取目录,但是当我尝试获取子目录时,出现以下错误:找不到路径“C:\Test1”的一部分。我查看了此处发布的其他类似答案,但无法找到解决我的问题的方法。我试过使用正斜杠和反斜杠,有和没有冒号,仍然没有运气。

这是 XML

<Options>
<Directories>
<Directory>C:/Test1/</Directory>
<Directory>C:/Test2/</Directory>
<Directory>C:/Test3/</Directory>
</Directories>
<DeleteTime>30</DeleteTime>
</Options>

这是我的 C# 代码:

        static void Main(string[] args)
        {
            //Declaring variables for use later
            List<string> directories = new List<string>();
            List<FileInfo> fileList = new List<FileInfo>();


            //Load Directories from XML
            XElement Options = XElement.Load("C:/Directories.xml");
            IEnumerable<XElement> DirList =
                from dir in Options.Descendants("Directory")
                select dir;
            foreach (XElement dirName in DirList)
            {
                directories.Add((string)dirName);
            }


            //Converting XML strings to Directories and adding all subfolders over 30 seconds old to a delete list
            foreach (var directory in directories)
            {
                DirectoryInfo dirItem = new DirectoryInfo(directory);
                var folderList = dirItem.GetDirectories();
                Console.WriteLine(folderList);
            }
}

【问题讨论】:

  • 您能否在代码运行时显示 C 盘上的文件夹。可能存在具有相同大小写的图像或显示文件夹的东西。
  • 这是权限相关的。

标签: c# path directory


【解决方案1】:

我复制了您的代码并设置了它所描述的目录结构,这一切都对我有用。

我唯一做的就是将所有正斜杠改为反斜杠。

    <Options>
<Directories>
<Directory>C:\Test1\</Directory>
<Directory>C:\Test2\</Directory>
<Directory>C:\Test3\</Directory>
</Directories>
<DeleteTime>30</DeleteTime>
</Options>

还有 C#:

class Program
    {
        static void Main(string[] args)
        {
            //Declaring variables for use later
            List<string> directories = new List<string>();
            List<FileInfo> fileList = new List<FileInfo>();


            //Load Directories from XML
            XElement Options = XElement.Load(@"C:\Directories.xml");
            IEnumerable<XElement> DirList =
                from dir in Options.Descendants("Directory")
                select dir;
            foreach (XElement dirName in DirList)
            {
                directories.Add((string)dirName);
            }


            //Converting XML strings to Directories and adding all subfolders over 30 seconds old to a delete list
            foreach (var directory in directories)
            {
                DirectoryInfo dirItem = new DirectoryInfo(directory);
                var folderList = dirItem.GetDirectories();
                Console.WriteLine(folderList);
            }
        }
    }   

我建议您检查并确保该进程有权查看目录,并且您不会不小心将反斜杠视为转义字符而不是文件路径。在我的示例中,我使用 @ 来避免这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    • 2017-05-03
    相关资源
    最近更新 更多