检查文件夹是否为空(内部存储)

时间:2013-03-06 16:47:47

标签: android filesystems directory

我遇到了麻烦。我的应用应该读取文件列表并向用户显示其名称。 当应用程序第一次启动时,我需要为应用程序创建一个特定的文件夹? 那怎么能检查它是否为空?

2 个答案:

答案 0 :(得分:4)

假设您在内部存储中创建了目录,您可以像这样获取目录中的子对象数

File dir = context.getDir("somePath", Context.MODE_PRIVATE);
File[] children = dir.listFiles();
if(children.length > 0)
{
    // the directory is not empty
}
else
{
    // the directory is empty.
}

这只是一个快速示例代码。更好的方法是使用带FileFilter的自定义dir.listFiles()排除自我和父别名,因为我不确定它们是否会始终从结果列表中排除。

答案 1 :(得分:2)

以下代码将检查文件夹是否已存在,如果没有,则创建一个文件夹,并在创建错误时发出警告:

    // check if appfolder is created and if not through an
    // exception
    File path = new File("yourDir");
    if (!path.exists()) {
        if (!path.mkdirs()) {
            try {
                throw new IOException(
                        "Application folder can not be created. Please check if your memory is writable and healthy and then try again.");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return false;
        }
    } else {
        Log.i("app", "directory is: " + path.getPath());
    }

exists()检查路径是否存在,path.exists()只为您创建一个路径。