我正在检查目录中的文件夹名称。它共包含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++;
}
但是当我调试我的代码时,它会遍历所有文件夹并获取它们的名称。
答案 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)));