首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法重命名文件夹中的所有文件

无法重命名文件夹中的所有文件
EN

Stack Overflow用户
提问于 2014-10-13 21:17:26
回答 1查看 102关注 0票数 0

我在sdcard上的一个文件夹里有一些照片,名字是:

代码语言:javascript
运行
复制
000.jpg
001.jpg
002.jpg
003.jpg
004.jpg
...

名字的种类是如此重要,应该总是这样。现在,我希望即使在删除照片后仍保持这种排序。我的意思是,如果我删除了第三张照片,那么我的第四张照片应该重命名为002,第五张重命名为003,依此类推。

出于我的目的,我编写了以下代码:

代码语言:javascript
运行
复制
// "myfiles" is a File array of directory listfiles.
// "str1" is my folder name and I checked it for existences before
// "numb" is the pic number that should delete.
File pic = new File(Environment.getExternalStorageDirectory() + "/Albummaker/" + str1 + "/" + String.format("%03d", numb) + ".jpg");
pic.delete();
// now I get the myfiles (I mean after deleting).
for (int i = numb; i < myfiles.length; i++) {
        File f = new File(Environment.getExternalStorageDirectory() + "/Albummaker/" + str1 + "/"+myfiles[i].getName());
        f.renameTo(new File(Environment.getExternalStorageDirectory() + "/Albummaker/" + str1 + "/"+String.format("%03d", i)+".jpg"));
    }

但当我运行它时,它会删除被删除的照片之前的照片(在本例中为001和002),然后重命名其余的照片(在此之后我将有3张照片(002,003,004))。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-10-13 21:35:13

只需删除该文件,然后恢复排序即可。将它们重命名,从1开始向上编号。

这是伪代码:

代码语言:javascript
运行
复制
// first get rid of the file
albumFile.delete();

// then restore the ordering in the album
organizeALbum(albumDir);

void organizeAlbum(albumDir) {
    var files = albumDir.getFiles("*.jpg");
    var sortedFiles = files.sort(); // sort ascending from 000.jpg to 999.jpg
    int index = 1;
    foreach (file in files) {
        file.rename(index.toString("###") + ".jpg");
        index += 1;
    }
}

这是伪代码,但是你可以在Android java中找到它。

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

https://stackoverflow.com/questions/26340920

复制
相关文章

相似问题

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