Quan transferim fitxers de la carpeta de la càmera a un espai de treball on ens agradaria analitzar les imatges, es fa difícil tractar fitxers llargs i escriure'ls una vegada i una altra quan els provem mitjançant el codi. També pot ser que el nombre de fitxers sigui massa gran per canviar el nom de cadascun d'ells manualment. Per tant, esdevé una necessitat automatitzar el procés de canvi de nom.
comproveu el null a Java
En aquest article anem a aprendre com canviar el nom de tots els fitxers d'una carpeta mitjançant Java.
Exemple: Podríem tenir noms de fitxer com aquest:
Suposem que tenim 50 fitxers a la carpeta
"C:UsersAnannya UberoiDesktomyfolder":
Instantània 1 (12-05-2025 11-57).webp
Instantània 2 (12-05-2025 11-57).webp
Instantània 3 (12-05-2025 11-57).webp
Instantània 4 (12-05-2025 11-57).webp i així successivament.
En lloc de canviar el nom d'aquests fitxers manualment, podem canviar el nom de tots els fitxers d'una carpeta amb l'ajuda d'un senzill programa Java. D'aquesta manera podem canviar el nom dels fitxers a alguna cosa més fàcil com 1.webp 2.webp i 3.webp.
Ara vegem com implementarem això a Java.
Problema:
Tenim molts fitxers que s'anomenen així:
Instantània 1 (12-05-2025 11-57).webp
Instantània 2 (12-05-2025 11-57).webp
Instantània 3 (12-05-2025 11-57).webp
Volem canviar-los el nom a alguna cosa com a continuació:
ordenació de selecció en java
1.webp
2.webp
3.webp
Canvieu el nom de tots els fitxers d'una carpeta mitjançant Java
Solució:
Per resoldre aquest problema, escriurem un petit programa Java que passarà per cada fitxer d'una carpeta i el canviarà el nom a un número seqüencial simple i mantindrà l'extensió del fitxer com .webp o .webp .
Exemple:
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.'); } } }
Sortida:
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
Explicació: En aquest exemple primer hem de definir la ruta de la carpeta on s'emmagatzemen els fitxers i després recuperarem els fitxers d'aquesta carpeta i després passarà a través de cada fitxer i extreurem la seva extensió de fitxer. Per a cada fitxer crea un nom nou basat en el comptador i canvia el nom del fitxer. Després de canviar el nom dels fitxers, imprimeix els fitxers canviats de nom o, si es produeix un error, imprimirà que el canvi de nom no ha tingut èxit.
Punts importants:
- Si la carpeta no conté cap fitxer, el programa ens ho avisarà amb un missatge "No s'han trobat fitxers al directori".
- Si un fitxer no pot canviar el nom, el programa imprimirà un missatge d'error per a aquest fitxer.
- El programa només funciona per a fitxers i ignora les subcarpetes. Si teniu subcarpetes a la vostra carpeta, no es canviaran el nom.