如何从android中的list-view重命名SD卡的文件夹

时间:2013-12-30 07:26:08

标签: android android-listview

我正在尝试从SD卡中获取特定文件夹名称的所有列表到android中的列表视图。我给用户提供两个选项,他们可以创建文件夹,也可以自己从应用程序重命名文件夹。

使用列表视图我已经给出了复选框,因此用户可以一次检查任何单个列表值,然后可以执行操作,因为他们想要在SD卡中编辑或创建文件夹。

一切正常,直到创建文件夹,但我的问题开始在这里,当用户尝试重命名文件夹名称,然后第一次用户可以成功更改文件夹名称但在第二次执行相同任务时,用户无法重命名相同文件夹再次。

我在做什么错,以下是我的代码请帮助,提前致谢。

 private static List<String> myList = new ArrayList<String>();


public static void folder_create() {
    if (Code.pm == 1) {
        String updateFolder = Environment.getExternalStorageDirectory()
                .getPath() + "/AudioRecorder/";
        File filecall = null;
        filecall = new File(updateFolder);
        File list[] = filecall.listFiles();
        for (int i = 0; i < list.length; i++) {
            myList.add(list[i].getName());
        }
        int len = mListView.getCount();
        SparseBooleanArray checked = mListView.getCheckedItemPositions();
        for (int i = 0; i < len; i++)
            if (checked.get(i)) {
                String mUpdateName = myList.get(i);
                File file = new File(updateFolder + "/" + mUpdateName);
                System.out.println("=======File======" + file);
                File file2 = new File(updateFolder + "/" + Code.className);
                System.out.println("=======File2======" + file2);
                file.renameTo(file2);
            }
    } else {
        String filepath = Environment.getExternalStorageDirectory()
                .getPath();
        File file = new File(filepath, "/AudioRecorder/" + Code.className);
        if (!file.exists()) {
            file.mkdirs();
        }
    }
}

此处代码是静态类, pm 是整数变量。因此,当用户点击基于 pm 变量值的按钮时,它将执行任务天气以重命名文件夹或创建文件夹。

1 个答案:

答案 0 :(得分:0)

如果我了解您的问题,那么您在尝试完成“某些任务”后会重命名目录。这些任务是否包含在此文件夹中?如果是,请确保您关闭了流(创建/修改内容),如下所示:

stream.close();

请同时检查LogCat以查看是否显示了一些警告。