puede crear un directorio único real (subdirectorio) y, a continuación, cualquier archivo dentro de él debe ser único, por ejemplo "myFile"."+ Extensión
public static String getUniqueFileName(String directory, String extension) {
try
{
// create actual unique subdirectory in the given directory
//
File myUniqueDir = File.createTempFile("udir", null,directory);
String filename = myUniqueDir.getName();
myUniqueDir.delete(); // don't want the file but a directory
myUniqueDir.mkdirs();
}
//todo: catch ....
// for example:
return directory + "/" + myUniqueDir + "/myFile." + extension;
}
este procedimiento debe trabajar en escenarios normales, incluso con la concurrencia. A menos que comencemos a pensar en los procesos de rastreadores que quieren ocupar nuestro nuevo directorio o cosas similares.
Si no lo hace crear el archivo , ¿qué quiere decir exactamente por "único"? ¿Quiere decir, "diferente de todos los demás nombres de archivo en ese directorio"? – lindelof
Me gustaría crear un nombre de archivo único: "diferente de todos los demás nombres de archivo en ese directorio "- exactamente. –
@mykhaylo: Date cuenta de que si no creas inmediatamente un archivo usando el nombre de archivo único que estás obteniendo existe la posibilidad de que otro archivo con ese nombre pueda aparecer en existenc mi. Incluso algunas de las respuestas proporcionadas no tienen en cuenta esta posibilidad. –