2013-04-22 2 views
4

У меня есть, вероятно, легко решить проблему. Я имею папку в моем проекте и хотите получить его, используя относительный путь:Рабочая область Java и путь к файлу

new File("/folder") 

это дает мне FileNotFoundException

если я пытаюсь как этот

new File("d:/workspace/project/folder") 

работает

Я подозреваю, что он не работает из-за этого: new File("").getAbsolutePath() возвращается: D:\eclipse Так что не путь рабочего пространства.

Я делаю что-то не так, или мне нужно изменить некоторые настройки в затмении

+0

Возможно, вы захотите, чтобы ваша программа принимала в качестве входной информации местоположение рабочей области. В Eclipse вы можете настроить цель запуска для java-программы и использовать предопределенную переменную Eclipse $ {workspace_loc}, чтобы передать местоположение вашей рабочей области.Главное меню Eclipse -> Run -> Run Configurations ... – Sticks

ответ

4

Просто нашел свой ответ в Run Cofigurations как DJNA предложил, но не в окружающей среде Tab, но в аргументах Tab. Существует раздел рабочего каталога, в котором установлено d: \ eclipse, и для которого необходимо установить значение $ {workspace_loc: myproject}

1

Может у попробовать это?

File file = new File("folder"); 
String path = file.getAbsolutePath(); 
FileInputStream fis = new FileInputStream(path); 
1

В конфигурациях запуска вы можете указать рабочий каталог для запуска. Это может варьироваться в разных затмениях, но для меня:

Run->Run Cofigurations ... 
Select Java Application, right Click New 
Environment Tab gives you a chance to specify the working directory 
    Select Other, and then Workspace ... to specify a project in your workspace 
0

D:\eclipse является корневой папкой вашего проекта. Если вы создадите другой проект в D:\java в том же рабочем пространстве, new File("").getAbsolutePath() вернет D:\java, так что это не зависит от пути вашего рабочего пространства.

Если вы хотите папку внутри вашего проекта, используйте ., пример:

System.out.println(new File(".\\test").getAbsolutePath()); 
2
new File("/folder") 

не является относительным путем, он является абсолютным. Если вы хотите получить доступ относительный путь использовать

new File("folder") 

или

new File("./folder") 
+0

Новый файл («папка») дает мне папку D: \ eclipse \, а новый файл («./ folder») дает мне D: \ eclipse \. \ папка – hhh3112

+0

Вот почему ваш D: \ eclipse, кажется, ваша рабочая папка. Попробуйте настроить затмение, как вам сказал djna. Но новый файл («/ folder») должен привести к папке C: \ – Don

0

Если вы хотите создать папку, которую нужно вызвать MKDIR() на объект File. Он создаст папку внутри вашего каталога проекта.

3

Дон указал, что вы используете абсолютный путь. Это проблема.

По умолчанию рабочий каталог в Eclipse - это путь проекта, в котором выполняется программа.

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

System.out.println(System.getProperty("user.dir"));