C#使用相对路径检查文件的存在性

本文关键字:文件 存在 检查 路径 相对 | 更新日期: 2023-09-27 18:24:03

以前有人问过这个问题,但我似乎没有找到确切的解决方案。我需要遍历文件中使用相对路径的一些链接,并检查它们是否链接到存在的文件。给定以下文件和文件夹:

C:'Level 1'Level 2'A.txt
C:'Level 1'B.txt

a.txt中可能存在使用相对路径..'B.txt链接到B.txt的链接。

我将拥有当前的遍历目录C:'Level 1'Level 2,并需要将其与..'B.txt结合起来以生成C:'Level 1'B.txt,这样我就可以检查B.txt的存在。

我试过使用Path.Compine,但没用。还有其他想法吗?它需要能够支持多个级别,如..'..'..'D.txt

C#使用相对路径检查文件的存在性

Path.Combine应该可以很好地使用"."answers".."相对路径。如果您有两个字符串,path1="C:''Level 1''Level 2"和path2="..''B.txt",然后调用Path.Combine(path1,path2),返回的字符串将是"C:''Level 2''Level 2''..''B..txt",它将在.NET中用作路径。然后您可以取用该字符串并调用File.Exists来确认组合路径上的文件是否存在。

如果要解析path.Combine输出中的相对路径组件"..",则从path.Combin获取初始输出并将其传递到path.GetFullPath将其转换为正确的绝对路径。File.Exist将接受任何一种形式。如果它出于某种原因不接受它,问题可能是传递到Path.Combine的路径。如果是这样的话,我会用调试器检查它们,看看发生了什么。