Java 重命名for循环中的文件时出错

Java 重命名for循环中的文件时出错,java,android,file,file-rename,iteration,Java,Android,File,File Rename,Iteration,我用Java编写了这段代码。函数的作用是:返回一个随机字符串 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)); }

我用Java编写了这段代码。函数的作用是:返回一个随机字符串

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;
文件句柄=新文件(文件);
字符串parent=handle.getParent();
字符串lastName=“”;
对于(int i=0;i<14;i++)
{
lastName=parent+File.separator+randomName();
handle.renameTo(新文件(lastName));
}
返回姓氏;

我有适当的权限,当我登录到logcat时,randomName()函数会处理所有字符串,但在循环结束时,
handle
似乎有一个与第一个randomName()调用值相同的文件名。

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

这是我的解决方案:

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);
            }

        }
文件句柄=null;
字符串parent=“”;
字符串lastName=“”;
对于(int i=0;i<14;i++)
{
如果(i==0)
{
句柄=新文件(文件);
parent=handle.getParent();
}
其他的
{
lastName=parent+File.separator+randomName();
handle.renameTo(新文件(lastName));
handle=新文件(lastName);
}
}

我认为它应该是最后一次
randomName()
调用的值;我认为这是处理程序的问题,因为第一个renameTo返回true,但其余的都是false,在for循环中记录
lastName
的值
renameTo()
不应该影响
lastName
的值。这应该会使问题更容易回答:)@user2008804如果你解决了它,你可以回答你的问题,这样其他面临相同问题的人可以看到效果。