2

可能重复:
删除 SD 卡上的文件夹

在我的应用程序中,我使用内部存储即文件保存了所有数据。因此,在第一个实例中,通过使用ContextWrapper cw = new ContextWrapper(getApplicationContext());该类,我将目录路径设置为m_AllPageDirectoryPath = cw.getDir("AllPageFolder", Context.MODE_PRIVATE);在此目录路径中,我将一些文件 File 保存为 Page01、page02、Page03 等。

再次在 Page01 内,我保存了一些文件,如 image01、image02 ......使用相同的概念m_PageDirectoryPath = cw.getDir("Page01", Context.MODE_PRIVATE);现在在删除 m_AllPageDirectoryPath 时,我想删除与之关联的所有文件。我尝试使用此代码,但它不起作用。

File file = new File(m_AllPageDirectoryPath.getPath()); 
file.delete();
4

1 回答 1

3

只有当您的目录为空时,您的代码才有效。

如果您的目录包含文件和子目录,那么您必须递归删除所有文件..

试试这个代码,

// Deletes all files and subdirectories under dir.
// Returns true if all deletions were successful.
// If a deletion fails, the method stops attempting to delete and returns false.
public static boolean deleteDir(File dir) {
    if (dir.isDirectory()) {
        String[] children = dir.list();
        for (int i=0; i<children.length; i++) {
            boolean success = deleteDir(new File(dir, children[i]));
            if (!success) {
                return false;
            }
        }
    }

    // The directory is now empty so delete it
    return dir.delete();
}

(实际上你必须在互联网上搜索才能问这样的问题)

于 2012-06-26T07:36:34.757 回答