4

基本上,假设我得到File f1 = new File("C:\\somedir\\batch1.bat");并且File f2 = new File("C:\\somedir\\batch2.bat");我有 2 个 if

if(f1.exists() == false)
{
    showMessage("File 1 not detected, creating new...");
    f1.createNewFile();
}
else
{
    showMessage("File 1 detected, deleting it and creating new...");
    f1.delete();
    f1.createNewFile();
}

if(f2.exists() == false)
{
    showMessage("File 2 not detected, creating new...");
    f2.createNewFile();
}
else
{
    showMessage("File 2 detected, deleting it and creating new...");
    f2.delete();
    f2.createNewFile();
}

第一个 if 执行“else”代码,无论文件是否存在,第二个执行“if”部分,而不创建新文件。请帮忙!

编辑

我的showMessage(String msg)方法System.out.println(msg)就是这样你知道的。

4

1 回答 1

4

嗯,我确定不是问题,但这样做更具可读性:

File f = new File(filePathString);
if(!f.exists()) { /* do something */ }

而不是:

if(f1.exists() == false)
    {
      ...
    }

删除文件时也要检查其返回值:

if(f.delete()) {//deleted successfully
}else {//couldnt delete
   //show error message
}

正如PeterLawrey所说,您应该对以下内容做同样的事情createNewFile()

if(f.createNewFile()) {//created successfully
}else {//couldnt create
   //show error message
}

最后总是在尝试做任何事情之前检查权限:

if(f.canRead()&&f.canWrite()) {//can read and write free to do what is needed
   //do stuff
}else {
}
于 2012-08-15T19:15:27.070 回答