2016-12-12 148 views
-6

之前存储文件我检查,如果该文件名已经存在(防止压倒一切)如何检查文件名是否已经存在?

为此,我现在用的是下面的代码

与下面的代码的问题是,有没有保证,newimage尚不存在。

 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

你可以用file.exists方法检查。或类似这样的'尝试(OutputStream出= Files.newOutputStream(路径,StandardOpenOption.CREATE_NEW))' – XtremeBaumer

+3

如果只有在文件上的方法,你可以检查... – wvdz

+1

http://stackoverflow.com/questions/ 1816673/how-do-i-check-if-a-file-exists-in-java其非常简单的搜索... – Guy

回答

2

要查看某个文件名存在简单的检查如下:

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

注意的是,文件可以是也目录,而不是necessarelly真正的文件。 如果你还需要检查它是否是一个文件:

File file = new File(filePath); 
if (file.exists() && !file.isDirectory()) { 
    // do something 
} 
相关问题