У меня есть файл свойств, и в нем я определяю свойство с именем:

config.folder = C:\myfolder\configfolder

Теперь проблема в том, что при загрузке свойств это свойство возвращает мне значение вот так:

C:myfolderconfigfolder

Я хочу заменить эту одиночную косую черту обратной косой чертой, чтобы она вернула мне правильный путь к каталогу. Я знаю, что это не соответствует Java.String. Если пользователь использует двойную косую черту, я могу преобразовать, но как я могу преобразовать одинарную косую черту.

1
Talha Bin Shakir 25 Янв 2012 в 12:52

4 ответа

Лучшим подходом является изменение косой черты с обратной косой черты на прямую косую черту, например:

config.folder = C:/myfolde/configfolder

Java умеет интерпретировать эту структуру.

3
Buhake Sindi 25 Янв 2012 в 13:27
Надеюсь, вы имели в виду наоборот - «от косой черты до косой черты», если только я не читаю ваш ответ вверх ногами :)
 – 
adarshr
25 Янв 2012 в 13:09
1
@adarshr, меня обычно путают с этими косыми чертами. Я исправил заявление, спасибо!. ржу не могу
 – 
Buhake Sindi
25 Янв 2012 в 13:27

Измените его на: config.folder = C:\\myfolder\\configfolder

2
bchetty 25 Янв 2012 в 12:55

Я предлагаю вам начать использовать Системные свойства для этого, т.е. file.separator

Строка fileSeparator = System.getProperty("file.separator");

Теперь скажите, что вы получили путь как:

String str = "C:/myfolder/configfolder";
String fileSeparator = System.getProperty("file.separator");
str= str.replace("/", fileSeparator);
System.out.println(str);

ВЫХОД:

C:\myfolder\configfolder

Этот подход может помочь вам реализовать вашу программу в любой ОС. Например, UNIX с «/» в качестве разделителя файлов для различных компонентов пути к файлу и для WINDOWS с «\» в качестве файлового разделителя для компонентов пути к файлу.

Надеюсь, это может как-то помочь.

Отношении

1
nIcE cOw 25 Янв 2012 в 13:04
Хотя это работает, делать это таким образом на самом деле не обязательно.
 – 
adarshr
25 Янв 2012 в 13:08
: Просто посмотрите мою эту правку, рассказывающую о преимуществах использования этого подхода для разных операционных систем без задержек. С Уважением.
 – 
nIcE cOw
25 Янв 2012 в 13:09
Согласен, я пытаюсь сказать, что просто наличие свойства как C:/myfolder/configfolder будет работать в большинстве приложений Java, поскольку они обычно обладают интеллектом и гибкостью для работы как с /, так и с \ .
 – 
adarshr
25 Янв 2012 в 13:13
: этот подход должен свести на нет любые нежелательные исключительные случаи, которые могут возникнуть из-за различий в операционных системах. Поскольку он хочет изменить его вручную снаружи, то выполнение этого с помощью file.separator даст ему / ей желаемый результат без каких-либо головных болей для будущих проблем. С Уважением
 – 
nIcE cOw
25 Янв 2012 в 13:16
1
+1 Правда, с косой чертой можно обойтись почти каждый раз, но все же об этом стоит упомянуть. Также см. stackoverflow.com/questions/2417485/ …
 – 
Joeri Hendrickx
25 Янв 2012 в 13:50

Лучший способ поиграть с литералом пути к файлу - использовать системные свойства, т.е. разделитель файлов строки = System.getProperty ("file.separator"), тогда вы можете заменить его косой чертой ur, чтобы получить путь к файлу.

1
25 Янв 2012 в 14:11