我有一个文本文件,其中包含指向带路径的不同文本文件的路径,依此类推。像这样:
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);
我需要遍历所有文件并打印出来,这很简单:
protected string UserId { get { return User.Identity.GetUserId(); } }
但正如您在示例中所看到的,所有路径都是相对的(非绝对路径),我需要提出如何在算法中处理它的想法。
答案 0 :(得分:3)
使用 SELECT COUNT(DISTINCT Test_Result) as 'Total'
,COUNT(DISTINCT CASE WHEN Test_Result='Pass' THEN serial_no END) AS 'Passed'
,COUNT(DISTINCT CASE WHEN Test_Result='Fail' THEN serial_no END) AS 'Failed'
FROM [Optima_Test_Results].[dbo].[Optima PreChamber Test]
WHERE
DATEADD(dd, 0, DATEDIFF(dd, 0, Created_Date)) = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
方法安全地连接多个路径。您可以使用Path.Combine()
方法从C:\folder1\dirs1.txt
获取目录路径。不会有这样的工作吗?
Path.GetDirectoryName()
答案 1 :(得分:1)
String path = null;
var files = File
.ReadLines(@"C:\MyFiles.txt")
.Select(line => {
if (Path.IsPathRooted(line)) {
path = Path.GetDirectoryName(line);
return line;
}
else
return Path.Combine(path, line.Trim());
});
...
Console.WriteLine(String.Join(Environment.NewLine, files));
答案 2 :(得分:0)
可能你的意思是:
IEnumerable<string> ExtractAllPathsFromFile(string path)
{
var basePath = Path.GetDirectoryName( path );
return File.ReadAllLines(path).Select (f => Path.Combine(basePath, f.Trim()));
}