首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LibGDX FileHandle:重命名文件将删除该文件

LibGDX FileHandle:重命名文件将删除该文件
EN

Stack Overflow用户
提问于 2017-12-12 21:30:52
回答 1查看 210关注 0票数 0

重命名我使用的文件

FileHandle#moveTo(FileHandle dest)

在大多数情况下,它工作得很好。但是,当我试图重命名文件"ABC“为"abc”时,文件就会被删除。我认为问题在于文件名是愚蠢的(至少在桌面上,Windows上是如此)。这就是上面提到的方法的实现(我在代码中留下了注释):

代码语言:javascript
复制
public void moveTo (FileHandle dest) {
    if (type == FileType.Classpath) throw new GdxRuntimeException("Cannot move a classpath file: " + file);
    if (type == FileType.Internal) throw new GdxRuntimeException("Cannot move an internal file: " + file);
    copyTo(dest); // file is not copied into another file, since "abc" file  is the same as the dest "ABC" file
    delete(); // and here the "original" file is deleted, but in this case original file equals to dest file, so the file is lost
    if (exists() && isDirectory()) deleteDirectory();
}

问题:

( 1)这种行为是否故意的?老实说这感觉不对。

( 2)这样重命名可以吗(在这种情况下是可行的,但也许还有另外一些注意事项):

代码语言:javascript
复制
FileHandle src = ...;
FileHandle dest = ...;
src.file().renameTo(dest.file());

如果没有,正确的方法是什么?

更新

正如@exenza建议的那样,打开了一个问题 on LibGDX问题跟踪器

EN

回答 1

Stack Overflow用户

发布于 2017-12-12 22:10:23

在Windows上,文件名不区分大小写。这意味着"abc“和"ABC”指的是同一个文件。您的copyTo()调用将文件复制到自身。然后delete()删除该文件。在所有这些过程中,只有一个文件没有副本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47781886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档