-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;
}
你可以用file.exists方法检查。或类似这样的'尝试(OutputStream出= Files.newOutputStream(路径,StandardOpenOption.CREATE_NEW))' – XtremeBaumer
如果只有在文件上的方法,你可以检查... – wvdz
http://stackoverflow.com/questions/ 1816673/how-do-i-check-if-a-file-exists-in-java其非常简单的搜索... – Guy