gpt4 book ai didi

C# 使用相对路径检查文件是否存在

转载 作者:行者123 更新时间:2023-12-01 22:05:43 25 4
gpt4 key购买 nike

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

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.Combine 但没有成功。还有其他想法吗?它需要能够支持多个级别,例如 ..\..\..\D.txt

最佳答案

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 的路径。如果是这样,我会用调试器检查它们,看看发生了什么。

关于C# 使用相对路径检查文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17737707/

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