Управление абсолютным путем и полным путем - PullRequest
2 голосов
/ 12 августа 2011

Я создал небольшую программу, которая может читать .txt файл.

Этот файл содержит ссылку на другой файл в этом формате new_file.txt

Цель состоит в том, чтобы вернуть путь к новому файлу, поэтому в основном я делаю это:

String newFileName = getFileName();
int index = oldFilePath.lastIndexOf('\\');
String path = oldFilePath.substring(0, index + 1);
String newFilePath = path + newFileName;
return newFilePath;

Например:

Первый файл, который я открыл: C:\a\b\c\oldFile.txt

В этом файле я нашел newFile.txt

Таким образом, новый путь будет: C:\a\b\c\newFile.txt

Хорошо, но что, если я найду что-то вроде этого:

..\ или .\.\ или ...

Есть ли способ автоматизировать этот беспорядок?

Спасибо

Ответы [ 2 ]

5 голосов
/ 12 августа 2011

В C # /. Net у вас есть довольно крутой класс Path .

. Вы можете использовать Path.GetFullPath (string pathname) для разрешения путей, например, с помощью \..\ и т.д. в них.

Используйте Path.GetDirectory(), Path.GetFileName(), Path.GetFileNameWithoutExtension() & Path.GetExtension(), чтобы разделить имена, и Path.Combine(), чтобы соединить их снова.

1 голос
/ 12 августа 2011

Вы отметили это как java, а также c #

В java посмотрите на FileNameUtils http://commons.apache.org/io/apidocs/org/apache/commons/io/FilenameUtils.html

Метод нормализации должен помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...