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

Nic*_*sen 2 c# io

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

C:\Level 1\Level 2\A.txt
C:\Level 1\B.txt
Run Code Online (Sandbox Code Playgroud)

A.txt中可能存在使用相对路径链接到B.txt的链接..\B.txt.

我将拥有当前的遍历目录,C:\Level 1\Level 2并且需要将其组合..\B.txt起来C:\Level 1\B.txt以便我可以检查B.txt的存在.

我尝试使用Path.Combine,但这不起作用.还有其他想法吗?它需要能够支持多个级别,如..\..\..\D.txt.

Act*_*ore 6

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

如果要在Path.Combine的输出中解析相对路径组件"..",从Path.Combine获取初始输出并将其传递到Path.GetFullPath将其转换为适当的绝对路径.File.Exist将接受任一表单.如果由于某种原因它不接受它,问题可能是路径被传递到Path.Combine.如果是这种情况,我会用调试器检查它们,看看发生了什么.