0

Win7を使用しています。私はjavaを使用して、ファイルの名前を最初に変更し(file.cmptrからfile.sqlに)、何かを実行します。その後、ファイルの名前を彼の古い名前(file.cmptr)に変更します。

しかし、これは失敗しました。ファイルの名前を変更すると、名前の変更に失敗することがありました。それはランダムに起こります。

-1番目のファイルがまったく変更されず、操作が行われない場合があります

-時々それは.sqlファイルに変更され、私は操作を取得しますが、ファイルは.sqlのままです

私の例では:

  • 初めて拡張子を変更するとき:

    int dotIndex = filechose.getPath().lastIndexOf('.');
    String newpath = filechose.getPath().substring(0, dotIndex);;
    newpath = newpath + ".sql";
    File filefinal = new File(newpath); 
    filechose.renameTo(filefinal);
    String path=newpath;
    

新しいファイルで操作を行った後:

Runtime.getRuntime().exec("cmd /c mysql -u root gestiondestock <"+'"'+path+'"');

最後に、ファイルの名前をもう一度変更しようとしています

File file1 = new File(path);
int dotIndex1 = path.lastIndexOf('.');
String newpath1 = path.substring(0, dotIndex1);
newpath1 = newpath1 + ".computeramg";
File file2 = new File(newpath1); 
file1.renameTo(file2);

解決しました。
それは私がこれだけを変更するのを待つことで動作します:

  Process p = Runtime.getRuntime().exec("cmd /c mysql -u root gestiondestock <"+'"'+path+'"');

                 p.waitFor();
4

1 に答える 1

3

使用中にファイルの名前を変更しようとしていると思われます。

mysqlプロセスでwaitForを使用するか、REN実行しているスクリプトにを使用して名前変更を追加できます。つまり、終了時にファイルの名前を変更します。

于 2012-08-28T13:47:37.513 に答える