0

我正在检查目录中的文件夹名称。它总共有 79 个文件夹,但是当我在控制台上打印它们时,我只得到 49 个。我的代码:

        StreamWriter sw;
        string dirPath = @"F:\Path\";
        DirectoryInfo dir = new DirectoryInfo(dirPath);
        int i = 1;
        sw = new StreamWriter(dirPath + "Pathlist.txt");
        foreach (string d in Directory.GetDirectories(dirPath))
        {
            string[] s = d.Split('\\');
            sw.Write(i + ". " + s[2] + Environment.NewLine);
            i++;
        }

但是当我调试我的代码时,它会遍历所有文件夹并获取它们的名称。

4

2 回答 2

0

尝试这个

string dirPath = @"F:\Path\";
if(Directory.Exists(dirPath))
{
   if(File.Exists(dirPath+"\\Pathlist.txt"))
    {
         /// Do your Code here 
         /// As Damith Said do this 
        File.WriteAllLines(path,Directory.GetDirectories(dirPath, "*", SearchOption.AllDirectories)
             .Select(d=>Path.GetFileName(d)));

    }
}
于 2013-10-15T04:02:34.330 回答
0

您可以使用File.WriteAllLines方法将字符串集合写入文件。

Directory.GetDirectorieswithSearchOption.AllDirectories将为您提供给定路径的所有目录和子目录

通过使用Path.GetFileName方法,您可以获得路径的最后一个目录名称。

Path.Combine当您将一个或多个字符串作为路径连接时使用。

string path =Path.Combine(dirPath, "Pathlist.txt");

File.WriteAllLines(path,
             Directory.GetDirectories(dirPath, "*", SearchOption.AllDirectories)
                 .Select(d=>Path.GetFileName(d)));
于 2013-10-15T04:05:10.180 回答