2014-01-04 2 views
1

Я сделал программу, где я использовал это:Удаление файла, созданного из программы Java

PrintStream output = new PrintStream(new FileOutputStream(createFile.getText())); 

Так что имя файла будет то, что мой JTextField createFile содержит. Однако я хочу удалить этот файл, набрав его имя в JTextField deleteFile.

Например, допустим, что я написал «эй» в моей createFile и нажал кнопку«OK», таким образом, создается файл. Теперь я хочу иметь возможность писать точно так же, а именно «hey» в моем поле deleteFile, чтобы этот ранее созданный файл был удален.

Как это сделать?

+0

'Надеюсь, что мой вопрос должен быть понят' Какой вопрос? Я не вижу вопросительного знака? (рядом с тем, который используется в этом комментарии) – Pshemo

+0

Моя вина. Я хочу, чтобы иметь возможность удалять файлы, набирая их имена в одном из моих JTextFields, и мой вопрос: Как мне это сделать? – user3161041

+1

В вашем вопросе есть опция [[edit]]. Добавьте этот вопрос к своему исходному сообщению, а также попытайтесь решить вашу проблему. – Pshemo

ответ

0

Вы можете использовать класс File. Вызовите конструктор с именем файла (возможно, предварительно ожидающим некоторый путь), а затем методом delete() в этом файловом объекте.

+0

Можете ли вы привести мне пример этого? Я новичок в программировании. Спасибо за ваш ответ – user3161041

+0

Да, посмотрите на один из других ответов. –

1

Получить путь к файлу, который вы хотите удалить, и использовать

try { 
    Files.delete(path); 
} catch (NoSuchFileException x) { 
    System.err.format("%s: no such" + " file or directory%n", path); 
} catch (DirectoryNotEmptyException x) { 
    System.err.format("%s not empty%n", path); 
} catch (IOException x) { 
    // File permission problems are caught here. 
    System.err.println(x); 
} 

Взятые из Java Tutorials: http://docs.oracle.com/javase/tutorial/essential/io/delete.html

Если у вас есть дескриптор файла (который можно получить при создании файл), вы можете использовать:

fileHandle.delete();

который будет возвращать истина/ложь в зависимости от результата (если есть файл и т. д.)

+0

Спасибо за вашу помощь, я ценю это. Но, честно говоря, я не очень разбирался в этом коде, и причина этого заключается не в вас, а просто в том, что я начинаю, и я еще не знаком с этим. Путем написания пути, я думаю, вы имеете в виду каталог, который для меня не проблема, поскольку файлы сохраняются в папке, которую я знаю. Хотя я не понял часть «Files.delete». Я хочу, чтобы иметь возможность писать в текстовое поле, какие из существующих файлов, которые я хочу удалить, просто напишите имя файла в этом поле и нажмите кнопку «ОК». Но это кажется сложнее, чем я думал. – user3161041

+0

Вам нужна базовая логика. Вы все равно можете получить результат, который хотите, с меньшими усилиями. FileOutputStream может быть не самым удачным способом для создания файла, так как нет простого способа получить из него Путь созданного файла. Однако вы знаете имя и папку, в которых он будет создан, поэтому вы можете попробовать что-то вроде: 'String pathString =" pathToTheFileExcludeName "+ nameOfTheFileString; Файл file = Файл (pathString); '. Например, 'file' - это ваш дескриптор файла, и с его помощью вы можете, например, использовать delete(). Я рекомендую вам ознакомиться с учебными пособиями по Java - может быть большой помощью. – 3yakuya

+0

'Files.delete (path)' просто вызывает метод delete из класса Files (это стандартный Java-класс, предоставляемый Oracle) с параметром path. Единственное, что вы предоставляете, это «Путь», «Файлы».delete метод удалит файл, если он существует по указанному пути. fileHandle - это ваш in-code "access_point" в файл. Вы возвращаете его каким-то методом (например, конструктор класса файлов). Если вы используете дескриптор типа File, то он уже имеет метод delete(), поэтому вы вызываете этот метод только в файле внутри вашего кода, чтобы удалить его: fileInsideYourCode.delete(). Этот файлInsideYourCode = handle – 3yakuya

0
File file = new File(deleteFile.getText()); 
if(file.delete()){ 
    System.out.println(file.getName() + " is deleted!"); 
}else{ 
    System.out.println("Do whatever!"); 
} 
+0

Я не могу заставить это работать. Я набираю файл, который уже существует, тогда как он говорит: «Файл не был удален!» который я написал вместо «Сделай все!» Я не знаю, чего у меня нет или что-то не так. – user3161041

+0

На самом деле ваша проблема сводится к «Как удалить файл» или «Как удалить файл без использования пути?» так что Google это. –

+0

Но это файл, который я напишу в текстовое поле, которое должно быть удалено, однако кажется, что оно не распознает это и, таким образом, дает ошибку. Моя проблема в том, что я не могу закодировать определенное имя в моем коде и удалить его, так как имя файла зависит от того, как оно было создано. Это могут быть имена людей, номера телефонов или что угодно. – user3161041

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

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