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

This is my solution:

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 回答
0

这没有按预期工作的原因是因为一旦文件第一次被重命名,handle就不再引用该文件。这就是后续重命名操作失败的原因。 File表示路径名,而不是磁盘上的实际对象。

于 2013-02-10T03:13:12.327 回答