Bij het overbrengen van bestanden van de cameramap naar een werkruimte waar we de foto's willen analyseren, wordt het moeilijk om met lange bestanden om te gaan en ze steeds opnieuw uit te typen bij het testen ervan via code. Ook kan het aantal bestanden te groot zijn om ze allemaal handmatig te hernoemen. Daarom wordt het een noodzaak om het hernoemingsproces te automatiseren.
paaseieren in Android
In dit artikel gaan we het leren hoe u alle bestanden van een map kunt hernoemen met Java.
Voorbeeld: We kunnen bestandsnamen als deze hebben:
Stel dat we 50 bestanden in de map hebben
'C:GebruikersAnannya UberoiDesktopmijnmap':
Momentopname 1 (12-05-2025 11-57).webp
Momentopname 2 (12-05-2025 11-57).webp
Momentopname 3 (12-05-2025 11-57).webp
Momentopname 4 (12-05-2025 11-57).webp enzovoort.
In plaats van deze bestanden handmatig te hernoemen, kunnen we met behulp van een eenvoudig Java-programma alle bestanden in een map hernoemen. Op deze manier kunnen we de bestanden hernoemen naar iets eenvoudigers, zoals 1.webp 2.webp En 3.webp.
Laten we nu eens kijken hoe we dit in Java gaan implementeren.
Probleem:
We hebben veel bestanden die ongeveer zo heten:
Momentopname 1 (12-05-2025 11-57).webp
Momentopname 2 (12-05-2025 11-57).webp
reeks van intMomentopname 3 (12-05-2025 11-57).webp
We streven ernaar om ze te hernoemen naar iets als hieronder:
1.webp
2.webp
3.webp
Hernoem alle bestanden van een map met Java
Oplossing:
Om dit probleem op te lossen gaan we een klein Java-programma schrijven dat elk bestand in een map doorzoekt en het hernoemt naar een eenvoudig volgnummer en de bestandsextensie behoudt zoals .webp of .webp .
Voorbeeld:
Java// Java program to demonstrate // how to rename all files import java.io.File; import java.io.IOException; public class Geeks { public static void main(String[] args) throws IOException { // Set the folder path where your files are located String folderPath = 'C:\Users\Anannya Uberoi\Desktop\myfolder'; // Create a File object for the folder File folder = new File(folderPath); // Get a list of all files in the folder File[] files = folder.listFiles(); // Check if there are any files in the folder if (files != null) { int counter = 1; // Loop through all files in the folder for (File file : files) { // Check if it's a file (not a folder) if (file.isFile()) { String fileName = file.getName(); String fileExtension = ''; // Extract the file extension (e.g. .webp .webp) int dotIndex = fileName.lastIndexOf('.'); if (dotIndex > 0) { fileExtension = fileName.substring(dotIndex); } // Create the new file name (e.g. 1.webp 2.webp etc.) String newFileName = counter + fileExtension; // Create a new File object with the new file name File renamedFile = new File(folderPath + '' + newFileName); // Rename the file if (file.renameTo(renamedFile)) { System.out.println('Renamed: ' + fileName + ' -> ' + newFileName); } else { System.out.println('Failed to rename: ' + fileName); } // Increment the counter for the next file counter++; } } } else { System.out.println('No files found in the directory.'); } } }
Uitgang:
Renamed: Snapshot 1 (12-05-2025 11-57).webp -> 1.webp
Renamed: Snapshot 2 (12-05-2025 11-57).webp -> 2.webp
Renamed: Snapshot 3 (12-05-2025 11-57).webp -> 3.webp
Uitleg: In dit voorbeeld moeten we eerst het mappad definiëren waar de bestanden zijn opgeslagen en dan gaan we de bestanden uit die map ophalen en vervolgens door elk bestand lopen en de bestandsextensie eruit halen. Voor elk bestand wordt een nieuwe naam gemaakt op basis van de teller en wordt de naam van het bestand gewijzigd. Na het hernoemen van de bestanden worden de hernoemde bestanden afgedrukt of als er een fout optreedt, wordt afgedrukt dat het hernoemen niet is gelukt.
Belangrijke punten:
- Als de map geen bestanden bevat, laat het programma ons dit weten met de melding 'Geen bestanden gevonden in de map'.
- Als de naam van een bestand niet kan worden gewijzigd, drukt het programma een foutmelding voor dat bestand af.
- Het programma werkt alleen voor bestanden en negeert submappen. Als u submappen in uw map heeft, worden deze niet hernoemd.