2016-12-12 9 views
-6

Bevor Sie eine Datei i Überprüfung speichern bin, wenn der Dateiname existiert bereitsWie überprüft man, ob der Dateiname bereits existiert oder nicht?

(übergeordnete verhindern) i Für diesen

Das Problem mit dem folgenden Code wird den folgenden Code verwendet, dass keine Garantie gibt, dass newimage existiert nicht schon.

 public static String ImageOverrideChecker(String image_name)throws IOException{ 
     String newimage = ""; 
     ArrayList<String> image_nameslist = new ArrayList<String>(); 
       File file = new File("/Images/"); 
     File[] files = file.listFiles(); 
     for(File f: files){ 
       image_nameslist.add(f.getName()); 
     } 
     if(image_nameslist.contains(image_name)) 
     { 
       Random randomGenerator = new Random(); 
       int randomInt = randomGenerator.nextInt(1000); 
       Matcher matcher = Pattern.compile("(.*)\\.(.*?)").matcher(image_name); 
       if (matcher.matches()) 
       { 
         newimage = String.format("%s_%d.%s", matcher.group(1), randomInt,matcher.group(2)); 
       } 
     } 
     else 
     { 
       newimage = image_name; 
     } 
     return newimage; 
} 
+0

Sie mit File.Exists Methode überprüfen konnten. oder so etwas wie 'try (OutputStream out = Files.newOutputStream (Pfad, StandardOpenOption.CREATE_NEW)) ' – XtremeBaumer

+3

Wenn es nur eine Methode für Datei gibt, können Sie dies mit ... überprüfen. – wvdz

+1

http://stackoverflow.com/questions/ 1816673/how-do-i-check-wenn-eine-Datei-existiert-in-Java Seine sehr einfache Suche ... – Guy

Antwort

2

Um zu sehen, ob ein Dateiname einfach wie folgt überprüfen existiert:

File file = new File(filePath); 
if (file.exists()) { 
    // do something 
} 

Beachten Sie, dass die Datei auch ein Verzeichnis sein, nicht necessarelly eine echte Datei. Wenn Sie auch zu prüfen, ob es sich um eine Datei ist:

File file = new File(filePath); 
if (file.exists() && !file.isDirectory()) { 
    // do something 
} 
Verwandte Themen