我的搜索文件夹功能不起作用?

时间:2013-10-15 03:56:31

标签: c# streamwriter

我正在检查目录中的文件夹名称。它共包含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++;
        }

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

2 个答案:

答案 0 :(得分: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)));

    }
}

答案 1 :(得分:0)

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

使用Directory.GetDirectories

SearchOption.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)));