лучший способ в Java для переименования файла в каталоге существует приблизительно 500 файлов

У меня есть 500 файлов PDF в каталоге. Я хочу удалить сначала пять символов имени файла и переименовать его.

11
задан ROMANIA_engineer 3 June 2016 в 08:52
поделиться

4 ответа

Используйте File.listFiles (. ..) для вывода списка файлов в каталоге, String.substring (...) для формирования новых имен файлов и File.rename (...) сделать переименование.

Но я предлагаю, чтобы ваше приложение проверило, может ли ваше приложение переименовать все файлы без каких-либо конфликтов , прежде чем вы начнете переименование .

Но комментарий @Pascal уместен. Java - не самый простой инструмент для этого.

4
ответ дан 3 December 2019 в 02:10
поделиться

Java - плохой выбор для такого рода работы. Намного лучшим выбором был бы язык сценариев JVM, например Groovy. Если вы хотите использовать этот вариант

Шаг 1:

Загрузите и установите Groovy

Шаг 2:

Запустите Groovy-консоль

Шаг 3:

Запустите этот сценарий

def dirName = "/path/to/pdf/dir"

new File(dirName).eachFile() { file -> 
    def newName = file.getName()[5..-1]
    File renamedFile = new File(dirName + "/" + newName)
    file.renameTo(renamedFile)

    println file.getName() + " -> " + renamedFile.getName() 
}     

I ' m предполагая, что все файлы находятся в каталоге / path / to / pdf / dir . Если некоторые из них находятся в подкаталогах этого каталога, используйте File.eachFileRecurse вместо File.eachFile .

0
ответ дан 3 December 2019 в 02:10
поделиться

Пример кода для переименования списка файлов в заданном каталоге. В приведенном ниже примере c: \ Projects \ sample - это папка, файлы, перечисленные в ней, были переименованы в 0.txt, 1.txt, 2.txt и т. Д.

I надеюсь, это решит вашу проблему

import java.io.File;
import java.io.IOException;

public class FileOps {


    public static void main(String[] argv) throws IOException {

        File folder = new File("\\Projects\\sample");
        File[] listOfFiles = folder.listFiles();

        for (int i = 0; i < listOfFiles.length; i++) {

            if (listOfFiles[i].isFile()) {

                File f = new File("c:\\Projects\\sample\\"+listOfFiles[i].getName()); 

                f.renameTo(new File("c:\\Projects\\sample\\"+i+".txt"));
            }
        }

        System.out.println("conversion is done");
    }
}
18
ответ дан 3 December 2019 в 02:10
поделиться

Если вы работаете в Windows, вам следует использовать командную строку или файл .bat. Windows поддерживает переименования с использованием подстановочных знаков на уровне ОС, так что это будет на порядки быстрее, чем Java, которой приходится перебирать все имена и выдавать вызовы переименования для каждого из них.

0
ответ дан 3 December 2019 в 02:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: