2017-02-11 28 views
0

Это мой текущий кодсделать путь к файлу не указать диск, чтобы заставить его работать повсеместно, независимо от того, где не сохранена программа

public static void readText() throws FileNotFoundException { 
    Scanner scan = new Scanner(new File("D:\\BookList\\src\booklist\\Booklist.txt")); 
    while(scan.hasNextLine()){ 
     String line = scan.nextLine(); 
     System.out.println(line); 
    } 
} 

он работает отлично положить его определяет диск D (он хранится на usb) и других папок.

Пользователи могут сохранять его в любом месте, и путь к файлам теоретически будет отличаться каждый раз, поэтому мой вопрос заключается в том, как начать с папки проекта Booklist, в которой находится программа, в сравнении с диском Compuuer, папками, ведущими к папку проекта (если есть), а затем в папке проекта, чтобы найти файл для моей программы.

+0

Что вы хотите - это относительный путь вместо абсолютного пути: [Как Java разрешает относительный путь в новом файле()?] (Http://stackoverflow.com/questions/21060992/how-does-java- решить-а-относительный путь-в-новое-файл). – MikaelF

ответ

0

Я не уверен в вашем случае, но я знаю в windows batch/cmd, что если бы кто-то запускал файл и использовал ли он текущий каталог в качестве переменной для путей к файлу, вы вводите «cd» (без котировок), а затем указывает текущий каталог. Я помню, что было возможно настроить параметры команды «cd», чтобы она возвращала только букву диска не весь путь.

Я уверен, что что-то в этом роде доступно для вашего случая.

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

  • Нет связанных вопросов^_^