基本上,假设我有File f1 = new File("C:\\somedir\\batch1.bat");并且File f2 = new File("C:\\somedir\\batch2.bat");我有 2 个如果
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();
}
Run Code Online (Sandbox Code Playgroud)
和
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();
}
Run Code Online (Sandbox Code Playgroud)
第一个 if 执行“else”代码,无论文件是否存在,第二个 if 执行“if”部分,而不创建新文件。请帮助!
我的showMessage(String msg)方法System.out.println(msg)只是为了让你知道。
嗯,我确定不是问题,但这样做更具可读性:
File f = new File(filePathString);
if(!f.exists()) { /* do something */ }
Run Code Online (Sandbox Code Playgroud)
而不是:
if(f1.exists() == false)
{
...
}
Run Code Online (Sandbox Code Playgroud)
另外,删除文件时始终检查其返回值:
if(f.delete()) {//deleted successfully
}else {//couldnt delete
//show error message
}
Run Code Online (Sandbox Code Playgroud)
正如 PeterLawrey 所说,你应该做同样的事情createNewFile():
if(f.createNewFile()) {//created successfully
}else {//couldnt create
//show error message
}
Run Code Online (Sandbox Code Playgroud)
最后,在尝试执行任何操作之前始终检查权限:
if(f.canRead()&&f.canWrite()) {//can read and write free to do what is needed
//do stuff
}else {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12256 次 |
| 最近记录: |