4

ここで見つけたコードを使用して、ファイルの名前を変更しようとしました:

File newFile = new File(oldFile.getParent(), "new-file-name.txt");
Files.move(oldFile, newFile);

今、私がしたことはこれでした:

  private void stFiles() {
    System.out.println("sorting");
    File f = new File (getName());
    name = getName() + counter.toString();
    System.out.println(f.getName());
    File newFile = new File(f.getParent(), getName()+ ".jpg");
    try {
        Files.move(f, newFile);
    } catch (IOException ex) {
        System.out.println("made file");
    }
    counter +=1;
}

ここで、「作成されたファイル」の出力が表示されます。これは、IO-Exception があることを意味します。ただし、スタック トレースは読み取ることができません。

この理由は何ですか?

4

3 に答える 3

3

以下に示すように、File オブジェクトに既に存在する renameTo メソッドを使用できます。

File myOriginalFile=new File("myOriginalFile.txt");
    File myChangedFile=new File("myChangedFile.txt");



    if(myOriginalFile.renameTo(myChangedFile)){
        System.out.println("Rename operation succesful");
    }else{
        System.out.println("Rename operation failed");
    }
于 2013-09-12T06:29:09.347 に答える
1

ファイルが Windows 共有にある場合、このFile.renameTo()方法を使用すると問題が発生する可能性があります。

より堅牢なソリューションは、Apache Commons IO FileUtils.moveFile()を使用することです

于 2013-09-12T06:51:11.213 に答える
1

まず第一に、Java では、java.io.File クラスにある renameTo(File file) メソッドを使用してファイルの名前を変更できます。

まず、名前を変更するファイルへの参照を取得します。次に、File 引数を使用して、その参照で renameTo() メソッドを呼び出します。file1.txt という名前のファイルがあり、その名前を file2.txt に変更したいとします。

以下のコード行は、その方法を示しています。

//Obtain the reference of the existing file
File oldFile = new File("file1.txt"); 

//Now invoke the renameTo() method on the reference, oldFile in this case
oldFile.renameTo(new File("file2.txt"));
于 2013-09-12T06:40:08.087 に答える