Directory.EnumerateFiles没有检索实际路径

时间:2017-12-05 12:51:43

标签: c# asp.net xml

我试图遍历文件夹并读取其中的所有XML文件。

使用Directory.EnumerateFiles从路径中读取。

我的.cs文件和XML文件文件夹位于同一路径

“C:\用户\文档\项目\ TestTool”

使用以下代码来读取文件。

string path = @"..\TestCases\";

foreach(string file in Directory.EnumerateFiles(path, "*.xml"))
{

}

使用此功能正在说明

  

无法找到路径“C:\ Program Files(x86)\ Common Files \ Microsoft   共享\ DevServer \的TestCases“

这指向WebDev.WebServer20路径而不是实际路径。

不确定为什么它指向一个完全不同的文件夹

我试过了string path = @"\TestCases\";但是当我尝试这样做时,它会抛出一个特殊的陈述

  

找不到路径“C:\ TestCases”

我犯的错误是什么?请帮忙

2 个答案:

答案 0 :(得分:0)

试一试:

    string path = "..\\TestCases\\";

    foreach (FileInfo file in new DirectoryInfo(path).EnumerateFiles("*.xml"))
    {
        string filePath = file.FullName;
    }

答案 1 :(得分:0)

由于它在WebDev服务器下运行,因此它将使用WebDev.WebServer20.exe的所有相对路径的路径。

您必须使用:Server.MapPath("~")才能找到自己的根。

string path = Server.MapPath("~") + @"\TestCases\";

foreach(string file in Directory.EnumerateFiles(path, "*.xml"))
{

}

请注意Server.MapPath("~")是否指向bin,然后像Directory.GetParent(Server.MapPath("~")) + @"\TestCases\";

一样使用它

假设这是您的目标目录C:\User\Documents\Projects\TestTool\TestCases