2009-07-23 5 views

ответ

20

К сожалению, на Java нет полноэкранного оператора escape. Вам нужно написать код, как:

String aa = "E:\\dev_workspace1\\AccessCore\\WebRoot\\DataFile"; 
12

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

String aa="E:/dev_workspace1/AccessCore/WebRoot/DataFile"; 

Windows allows как вперед, так и назад косые как разделитель путей. Это не сработает, если вы пройдете путь к внешней программе, которая с ним справится и не удастся, но это довольно редко.

+0

Действительно ли это на самом деле Ява, которая умна? Я думал, что это было следствием того, что Windows разрешает/как разделитель файлов, а также \. –

+0

Идея - я всегда думал, что это Java, но возможно, это может быть вызов Windows API. Скорректировано на всякий случай. – paxdiablo

+0

Хе-хе, мне нравится, как люди щедро работают над тем, чтобы поднять моего представителя! Спасибо Pax за улучшение ответа! :-) –

4

Может быть не прямой ответ на ваш вопрос, но я считаю, что следует отметить:

Там в system-dependent default name-separator character.

+0

Итак, есть, но, как заметил Винько, вам действительно не нужно беспокоиться об этом свойстве; косые черты работают очень хорошо. –

3

Действительно независимый от системы способ сделать это:

String aa = "E:/dev_workspace1/AccessCore/WebRoot/DataFile"; 
String output = aa.replace('/', File.separatorChar); 

Это даст вам "E: \ dev_workspace1 \ AccessCore \ WebRoot \ DataFile" на Windows, и «E:/dev_workspace1/AccessCore/WebRoot/DataFile " примерно везде.

+0

Почему замена? «/» Всегда работает на Java и автоматически преобразуется в системный разделитель-char. – Mnementh

+0

Потому что тогда действительно, действительно, действительно безопасно использовать эту строку. Вы даже можете передать его в качестве параметра, чтобы, скажем, неясную программу командной строки DOS в окнах или подавать ее на действительно древние вызовы WinAPI или что-то, что не может обрабатывать косые черты в качестве разделителя. –

+0

Оберните замену, если (File.seperatorChar! = '/') В качестве оптимизации для платформ unix. – KitsuneYMG

1

Если вы пишете путь, вы должны использовать '/' в качестве разделителя путей в Java. «/» Является официальным разделителем путей в Java и будет преобразован в соответствующий разделитель для платформы (\ under windows,/under unix). Остальная строка не изменяется, если она передается системе, поэтому «\» также работает под окнами. Но правильным способом представления этого пути является «E:/dev_workspace1/AccessCore/WebRoot/DataFile».

Если вы хотите представить '\' в Java-String, вам нужно сбежать от него с помощью другого: «Эта строка содержит a».

Смежные вопросы