2014-01-05 5 views
2

У меня есть 2 файла с почти таким же именем, как «myfile_1234.mp4» и «myfile_5678.mp4» в том же каталоге. Один файл, скажем, «myfile_1234.mp4» - это ZERO-байты, где, как и в другом файле, «myfile_5678.mp4» имеет некоторый размер NOT EQUAL to ZERO (скажем, 32kb). Теперь я хочу удалить 1-й файл из каталога, но не другой файл.Удаление файла с похожими именами в Java

Можем ли мы иметь что-то вроде указателя темпа цикла для файлов в Каталоге, и тогда мы будем проверять размер файла и удалять его, когда его размер равен нулю.

Может ли кто-нибудь помочь мне здесь ...?

+0

Если у вас есть только два файла, зачем вам нужен цикл? Что такое цикл, связанный с этой проблемой? –

+0

ой, два файла - всего лишь пример, я вижу. –

ответ

5

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

  • Каталог представлен объектом File. Создать File объект для каталога, который вы хотите перечислить
  • listFiles() вызова производит массив всех файлов в каталоге
  • Метод length() возвращает размер файла
  • Метод delete() удаляет файл

Ваш код будет выглядеть следующим образом:

// Reference the directory in which the files reside 
File dir = new File("c:/my/test/directory"); 
// Go through the files in the directory in a loop 
for (File file : dir.listFiles()) { 
    // Make sure that an entry is a file (it could be a directory) 
    // and that its size is zero 
    if (file.isFile() && file.length() == 0) { 
     // If both conditions are true, delete the empty file 
     file.delete(); 
    } 
} 

Вы можете сделать дополнительные условия чтобы проверить, имеет ли файл определенное имя, расширение и т. д.

4

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

File myFileOne = new File(path); 
File myFileTwo = new File(anotherPath); 

Имея такие ручки довольно легко проверить размер файлов или имена и удалять файлы. Для получения дополнительной информации о файле Java см.: http://docs.oracle.com/javase/6/docs/api/java/io/File.html#File

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