2012-07-21 2 views
1

Как говорится в вопросе, я пытаюсь получить значение Path, используя JFileChooser. Возвращения от JFileChooser представляют мне две проблемы. Во-первых, точная природа того, что я делаю, позволяет пользователю выбрать каталог, а затем переименовать все файлы определенного типа, например, все .pdf-файлы внутри этой папки, оставив все остальные файлы в одиночку. Проблемы, которые у меня возникают с JFileChooser в этом отношении, в два раза:Получение значения пути от JFileChooser в Windows XP

1) Я выяснил, как разрешить JFileChooser показывать файлы внутри каталога, но не разрешать пользователю выбирать файл специально. Однако возвращаемое значение строки не включает просматриваемый в данный момент каталог внутри JFileChooser при нажатии «Open». Например, если пользователь переходит к C: \ Documents and Settings \ myFolder \ Documents \ Work и видит содержимое каталога Work, затем нажимает «Open», строка, возвращаемая как вызов getAbsolutePath(), является «C: \ Documents» и «Установка \ myFolder \ Documents» «Работа» никогда не возвращается. Как мне получить это, чтобы быть представленным в конечном результате?

2) Как только у меня есть эта строка, как мне преобразовать ее в Путь, чтобы я мог работать с файлами внутри нее? «\» - это побег Java, и для использования пути к файлу в качестве допустимого значения пути он должен быть экранирован, то есть «C: \ Documents and Settings \ myFolder» не работает, он должен быть «C: \ Documents» и Настройки \ myFolder ". Как я могу получить из единственного slash() вернуть String из JFileChooser в двойной слэш (\) Путь, который мне нужен?

Я знаю, что ответ, вероятно, прост, я просто больше привык к работе с Linux, где это не проблема. Я только что приземлился на свою первую работу, используя свои навыки программирования, и, конечно же, все это Windows.

А до того, как кто-то предлагает, да, я знаю, что использование «/» будет работать для относительных путей, но для приложения, которое я пишу, мне нужно использовать абсолютные пути, поскольку эти файлы могут находиться на главной машине или в сети диск, поэтому я не могу использовать относительное присвоение имен, если я не замечаю что-то из-за отсутствия большого количества сетевого программирования.

Благодарю вас всех за ваше время в чтении, если не отвечаете на это.

Tommie Matherne

ответ

1

1. Для получения весь путь к выбранному каталогу это сделать:

Здесь myJfc является instance of JFileChoooserздесь

String path = myJfc.getSelectedFile().getAbsolutePath().toString(); 

2. Conver String в путь, используя это:

Используйте "\\" вместо "\" в пути.

ie. C:\\Documents and Settings\\myFolder

Пожалуйста, смотрите, что у вас есть надлежащего Privilege в C: диск иначе ваш файл не будет создан там, если вы не имеете привилегию, чтобы создать файл в C: диск, попробуйте какой-нибудь другой диск, который вам имеют, как D :, E: и т.д .. У вас не будет проблемы с привилегией.

File f = new File(path); 
+0

ОК, я думаю, я был немного неоднозначным. Я пытаюсь установить переменную типа Path для переменной, чтобы я мог получить содержимое всей папки в ArrayList для последующей работы.Моя проблема заключается в попытке установить переменную Path с возвращаемой строкой. Возвращенная строка содержит одиночные косые черты, а не двойные косые черты, и простая замена не работает, так как косая черта в файлах Windows - это escape-символы в Java. Как получить эти двойные косые черты? Спасибо. – TMatherne

+0

Nevermind. Облако глупого исчезло с холодом, который у меня был. Я получил то, что вы говорили. Еще раз спасибо. – TMatherne

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