3

私はこのコードをJavaで持っています。randomName()関数は、(当然のことながら)ランダムな文字列を含む文字列を返します。

File handle = new File(file);
String parent = handle.getParent();
String lastName = "";
for (int i = 0; i < 14; i++)
{
    lastName = parent + File.separator + randomName();
    handle.renameTo(new File(lastName));
}
return lastName;

私は適切な権限を持っており、logcatにログを記録すると、randomName()関数がすべての文字列を実行しますが、ループの終了時にhandle、最初のrandomName()呼び出しの値のファイル名を持っているように見えます。

4

2 に答える 2

0

これが期待どおりに機能しなかった理由は、ファイルの名前が最初に変更さhandleれると、ファイルを参照しなくなったためです。そのため、その後の名前変更操作は失敗しました。 Fileディスク上の実際のオブジェクトではなく、パス名を表します。

于 2013-02-10T03:13:12.327 に答える
0

これが私の解決策です:

File handle = null;
        String parent = "";
        String lastName = "";

        for (int i = 0; i < 14; i++)
        {
            if (i == 0)
            {
                handle = new File(file);
                parent = handle.getParent();
            }
            else
            {
                lastName = parent + File.separator + randomName();
                handle.renameTo(new File(lastName));
                handle = new File(lastName);
            }

        }
于 2013-04-13T19:26:04.147 に答える