Ich habe 500 pdf-Dateien in einem Verzeichnis. Ich möchte die ersten fünf Zeichen eines Dateinamens entfernen und umbenennen.beste Weg in Java, um eine Datei umzubenennen, gibt es etwa 500 Dateien in einem Verzeichnis
Antwort
Verwenden Sie File.listFiles(...)
, um die Dateien im Verzeichnis aufzulisten, String.substring(...)
, um die neuen Dateinamen zu bilden, und File.rename(...)
, um die Umbenennung durchzuführen.
Aber ich schlage vor, dass Sie Ihre Anwendung überprüfen, dass es alle Dateien ohne Kollisionen umbenennen kann, bevor Sie die Umbenennung starten.
Aber @ Pascals Kommentar ist genau richtig. Java ist nicht das einfachste Werkzeug, um so etwas zu tun.
Java ist eine schlechte Wahl für diese Art von Arbeit. Eine viel bessere Wahl wäre eine JVM-Skriptsprache wie Groovy. Wenn Sie diese Option verfolgen wollen
Schritt 1:
Herunterladen und Installieren von Groovy
Schritt 2:
Starten Sie den groovy Konsole
Schritt 3:
Führen Sie dieses Skript
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()
}
Ich gehe davon aus hier, dass alle Dateien in dem Verzeichnis sind /path/to/pdf/dir
. Wenn sich einige von ihnen in Unterverzeichnissen dieses Verzeichnisses befinden, verwenden Sie File.eachFileRecurse
statt File.eachFile
.
+1, weil ich glaube nicht, dass diese Antwort 3 downvotes verdient, besonders ohne irgendeine Erklärung. –
Könnten Sie bitte Ihren Standpunkt rechtfertigen? Es hängt wirklich davon ab, wonach er sucht. Wenn er eine GUI-basierte Anwendung möchte, wäre Java in Ordnung. – captainspi
@SPI Ich nehme an (vielleicht falsch), dass dies eine einmalige Aufgabe –
Wenn Sie Windows verwenden, sollten Sie die Eingabeaufforderung oder eine .bat-Datei verwenden. Windows unterstützt Platzhalter-Umbenennungen nativ auf Betriebssystemebene, so dass es um Größenordnungen schneller ist als Java, das über alle Namen iterieren und Umbenennungsanrufe für jeden ausgeben muss.
Beispielcode zum Umbenennen der Liste der Dateien in einem bestimmten Verzeichnis. Im folgenden Beispiel ist c:\Projects\sample
der Ordner, die Dateien, die unter die aufgeführt sind, wurden zu 0.txt umbenannt, 1.txt, 2.txt usw.
Ich hoffe, das Ihr Problem lösen
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");
}
}
so etwas wie dies tun sollte (Windows-Version):
import java.io.*;
public class RenameFile {
public static void main(String[] args) {
// change file names in 'Directory':
String absolutePath = "C:\\Dropbox\\java\\Directory";
File dir = new File(absolutePath);
File[] filesInDir = dir.listFiles();
int i = 0;
for(File file:filesInDir) {
i++;
String name = file.getName();
String newName = "my_file_" + i + ".pdf";
String newPath = absolutePath + "\\" + newName;
file.renameTo(new File(newPath));
System.out.println(name + " changed to " + newName);
}
} // close main()
} // close class
Wenn Sie auf MacOS X und wollen alle Dateien in Ordnern und Unterordner von einem externen Laufwerk umbenennen, unter dem Code wird die Arbeit tun:
public class FileOps {
public static void main(String[] argv) throws IOException {
String path = "/Volumes/FAT32/direito_administrativo/";
File folder = new File(path);
changeFilesOfFolder(folder);
}
public static void changeFilesOfFolder(File folder) {
File[] listOfFiles = folder.listFiles();
if (listOfFiles != null) {
int count = 1;
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
File f = new File(folder.getPath() + "/" + listOfFiles[i].getName());
f.renameTo(new File(folder.getPath() + "/" + count + ".flv"));
count++;
} else if (listOfFiles[i].isDirectory()) {
changeFilesOfFolder(listOfFiles[i]);
}
}
} else {
System.out.println("Path without files");
}
}
}
Dies werden Sie erwähnt, alle Dateinamen des Ordners ändern: dies aber bash oder eine Skriptsprache
for (int i = 0; i < folders.length; i++) {
File folder = new File("/home/praveenr/Desktop/TestImages/" + folders[i]);
File[] files2 = folder.listFiles();
int count = 1;
for (int j = 0; j <files2.length; j++,count++) {
System.out.println("Old File Name:" + files2[j].getName());
String newFileName = "/home/praveenr/Desktop/TestImages/" + folders[i]+"/file_"+count+"_original.jpg";
System.out.println("New FileName:" + newFileName);
files2[j].renameTo(new File(newFileName));
}
}
- 1. Der beste Weg, um eine Datei mit Küchenchef umzubenennen
- 2. beste Weg, um viele Dateien in Platten
- 3. Der beste Weg, um Java-Dateien zu verteilen
- 4. Gibt es einen Weg in PowerShell, dass ich alle Dateien in einem Verzeichnis finden kann?
- 5. Der beste Weg, um eine zufällige Datei aus einem Verzeichnis zu wählen
- 6. Der beste Weg, um eine Liste in Java zu pflegen
- 7. Gibt es eine einfache Möglichkeit, eine Tabelle in Prozedur umzubenennen?
- 8. Gibt es eine Möglichkeit, vim-Befehle umzubenennen?
- 9. Der beste Weg, um eine Datei schreibbar in c machen #
- 10. Der beste Weg, um eine große Datei in einem Byte-Array in C# zu lesen?
- 11. .bat-Datei, um mehrere Dateien von einem Verzeichnis in ein anderes zu verschieben und umzubenennen statt zu überschreiben
- 12. Java - Suche nach Dateien in einem Verzeichnis
- 13. Was ist der beste Weg, um ein Verzeichnis zu leeren?
- 14. Was ist der beste Weg, um einen Wert in XML-Dateien in Java zu ändern?
- 15. Alle Dateien in einem Verzeichnis auflisten PHP
- 16. Schreiben Sie eine Batch-Datei, um Dateien in mehreren Ordnern umzubenennen
- 17. Der beste Weg, um eine XML-Datei per PHP
- 18. Ist es möglich, eine Datei in CodeBlocks umzubenennen?
- 19. Eingebauter Weg, um Verzeichnisse in einem Verzeichnis in Ruby aufzulisten
- 20. Gibt es eine Begrenzung für die Anzahl der Dateien in einem Verzeichnis auf einer SD-Karte?
- 21. beste Weg, um eine Konfigurationsdatei für die Java-Anwendung
- 22. Der beste Weg, um eine 404 in einem Datei-Download-HTTP-Handler zu behandeln?
- 23. Was ist der beste Weg, Dateien mit demselben modifizierten Datum und derselben Uhrzeit umzubenennen?
- 24. Gibt es eine Möglichkeit, alle Verzeichnisse, aber keine Dateien in einem Verzeichnis in Python zu bekommen?
- 25. Lesen von Dateien in einem Verzeichnis in einer JAR-Datei
- 26. Der beste Weg, um Java-Aufgabe in Grad zu definieren
- 27. Was ist der beste Weg, um "* .mp3" -Dateien in Java abzuspielen?
- 28. beste Weg, um eine Fall-Klasse zu einem js.Object
- 29. beste Weg, um eine C++ Schnittstelle verwenden
- 30. Der beste Weg, um ein Projekt in Visual Studio 2008 umzubenennen
Der beste Weg wäre, nicht Java zu verwenden. –
würde dies den Zweck lösen ... NO JAVA übrigens ...................... dir/B> fileList.txt für/f "Tokens = 1,2,3"% i in (fileList.txt) DO ren "% i% j% l"% l – Narayan