4

基本的に、2 つの ifがあるFile f1 = new File("C:\\somedir\\batch1.bat");としましょうFile f2 = new File("C:\\somedir\\batch2.bat");

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」コードを実行し、2 番目は、新しいファイルを作成せずに「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 に答える