gpt4 book ai didi

c# - 递归遍历目录并处理相对路径

转载 作者:行者123 更新时间:2023-11-30 20:41:22 25 4
gpt4 key购买 nike

我有一个文本文件,其中包含不同文本文件的路径等等。像这样:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com