我有一个文本文件,其中包含不同文本文件的路径以及路径等。像这样:
C:\folder1\dirs1.txt:
folder2\dirs1.txt
folder2\dirs2.txt
folder3\dirs1.txt
C:\folder1\folder2\dirs1.txt:
folder4\dirs1.txt
folder4\dirs2.txt
我需要遍历所有文件并打印它,这很简单:
IEnumerable<string> ExtractAllPathsFromFile(string path) { ... }
void PrintAllPaths(string root)
{
var paths = ExtractAllPathsFromFile(root);
foreach (path in paths)
{
Console.WriteLine(path);
if (File.Exists(path))
PrintAllPaths(path);
}
}
PrintAllPaths(root:C:\folder1\dirs1.txt);
但是正如您在示例中看到的,所有路径都是相对的(不是绝对的),我需要想出如何在我的算法中处理它的想法。
最佳答案
使用Path.Combine()
方法安全地连接多个路径。您可以使用 Path.GetDirectoryName()
方法从 C:\folder1\dirs1.txt
获取目录路径。这样的事情行不通吗?
using System.IO;
public static string[] ExtractPathsFromFile(string originalPath)
{
string[] newPaths = File.ReadAllLines(originalPath);
string[] modified = new string[newPaths.Length];
for (int i = 0; i < newPaths.Length; i++)
modified[i] = Path.Combine(Path.GetDirectoryName(originalPath), newPaths[i].Trim());
return modified;
}
关于c# - 递归地遍历目录并处理相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32434920/