2015-04-11 2 views
0

Моя программа просто считывает 2 значения, а затем выполняет некоторые операции с ними. (Эта часть не важна.) В начале мне нужно проверить имя файла. Например, моя программа начинается сКак проверить, существует ли имя файла в каталоге?

Введите имя файла:

Когда я ввожу имя файла, моя программа должна проверить, существует ли файл с таким именем в рабочей области проекта. У меня есть файл в библиотеке проекта, и я хочу проверить: «Является ли это имя файла одинаковым или нет с заданным именем пользователем».

String workingDir = System.getProperty("user.dir"); 

Я могу получить местоположение рабочей области с помощью этого кода.

File a = new File(" --Workspace direction-- "); 
if(filename.equals(a.getName())){ 

} 

Я создал новый файл и попытался сравнить с .getName() методом. Проблема в том, что в месте рабочей области отсутствует имя файла .txt. Когда я получаю место workpace с первым кодом, я просто

/Users/ASD/Документы/рабочее пространство/проект/

это. Но чтобы иметь возможность получить имя файла, должно быть имя файла в конце этого пути к файлу. Как проверить, существует ли файл в каталоге рабочей области с именем, заданным пользователем?

+2

Я ничего не могу понять на ваш вопрос. Что вы подразумеваете под названием «рабочее пространство»? Вы понимаете, что «рабочая область» - это концепция, которая существует только в среде IDE на машине разработчика? У конечных пользователей нет рабочего пространства. Все, что у них есть, это ваша программа, которую они выполнили из некоторого каталога. Тем не менее, я даже не понимаю, чего вы пытаетесь достичь. Пользователь вводит имя файла. И что? –

+0

Извините за недоразумение. Надеюсь, что когда я запустил этот код Java на своем компьютере, проблем нет. Я могу написать код File a = new File («/ Users/asd/Documents/workspace/project/.input.txt»); и я могу легко получить имя файла и сравнить с именем входного файла. Но другой компьютер. /Users/asd/Documents/workspace/project/.input.txt это направление изменится. (Извините за типизацию ошибок. Я пытаюсь настроить :)) @JBNizet –

+0

Ответьте на мой вопрос. Предположим, я установил вашу программу на свой компьютер. Затем я запустил его. Он просит ввести имя файла. Я вхожу в "hello.txt". Что должна делать программа? –

ответ

3

Предположим inputName содержит входной сигнал от пользователя:

/* In your case, this is entered by the user */ 
String inputName = "testfile.txt"; 

Тогда вы получите свой рабочий каталог:

String workingDir = System.getProperty("user.dir"); 

Теперь вы хотите знать, файл с именем ли «testfile.txt» существует в этом каталоге рабочей области. Создать экземпляр файла для такого файла:

// a File instance for the directory: 
File workingDirFile = new File(workingDir); 
// a File instance for a file in that directory: 
File testfile = new File(workingDirFile, inputName); 

Теперь вы должны иметь workingDirFile, который содержит "/ Users/ASD/Документы/рабочее пространство/проект /" и testfile, который содержит «/ Users/ASD/Документы/рабочее пространство/project/testfile.txt ". Проверить, существует ли файл:

if (testfile.exists()) { 
    /* file with name "testfile.txt" exists in project dir */ 
} else { 
    /* file with name "testfile.txt" does not exist in project dir */ 
} 
+0

Большое вам спасибо! :) –

+0

Рад, что я мог бы помочь :-) Возможно, вы захотите посмотреть файл javadoc и можете захотеть добавить больше тестов. Например, если вы хотите, чтобы пользовательский ввод соответствовал фактическим файлам, а не каталогам, убедитесь, что 'testfile' является файлом, а не каталогом. (Детали находятся в javadoc) –

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