C# проверка существования файла с помощью относительного пути



Этот вопрос уже задавался раньше, но я, кажется, не вижу своего точного решения. Мне нужно пройти по некоторым ссылкам в файле, использующим относительные пути, и проверить, связаны ли они с существующими файлами. Даны следующие файлы и папки:



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


Там может быть связь в A.txt это ссылки на B.txt используя относительный путь ..B.txt.



У меня будет текущий каталог обхода, C:Level 1Level 2, и нужно объединить его с ..B.txt, чтобы придумать C:Level 1B.txt, чтобы я мог проверить существование B.txt.



Я попробовал использовать Path.Совмещать, но это не сработало. Есть еще какие-нибудь мысли? Он должен быть способен поддерживать несколько уровней, таких как ......D.txt.

753   1  

1 ответ:

Путь.Комбайн должен прекрасно работать с "." и ".." относительный путь. Если бы у вас было две строки, path1 = "C:\Level 1\Уровень 2" и путь 2="..\B.txt - а потом позвони Пэйту.Combine (path1, path2), возвращаемая строка будет "C:\Level 1 \ Уровень 2\..\B.txt", который будет функционировать как путь в. NET. затем вы можете взять эту строку и вызвать файл.Существует на нем, чтобы подтвердить, существует ли файл в этом комбинированном пути.

Если вы хотите разрешить компонент относительного пути ".." в path.Комбината вывод, принимая начальный вывод из Пути.Комбинируйте и передавайте его в путь.GetFullPath превратит его в правильный абсолютный путь. Файл.Exist примет любую форму. Если он не принимает его по какой-то причине, проблема может заключаться в том, что пути передаются в путь.Объединять. Если это так, я бы изучил их с помощью отладчика и посмотрел, что происходит.

Comments

    Ничего не найдено.