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.GetDirectoriesを使用するSearchOption.AllDirectoriesと、指定されたパスのすべてのディレクトリとサブディレクトリが表示されます

メソッドを使用Path.GetFileNameすると、パスの最後のディレクトリ名を取得できます。

Path.Combine1 つまたは複数の文字列をパスとして結合するときに使用します。

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 に答える