【问题标题】:How to make a folder in internal storage? [duplicate]如何在内部存储中创建文件夹? [复制]
【发布时间】:2021-04-03 10:34:16
【问题描述】:

我正在尝试在 Android Studio 的内部存储(用户可以访问该文件夹)中创建一个文件夹(如果创建了该文件夹,我不想再次创建它)。

我已经看到了那个链接:Android create folders in Internal Memory,但是这里没有显示我想要的。我希望用户可以访问数据,例如,我不想将其存储在这里 /data/data/package.name/app_MyDirName。

我已经尝试过该代码,但运行它总是有问题:

    public void createFolder(View v){
        File folder = new File(Environment.getExternalStorageDirectory() + File.separator + "YOUR_FOLDER_NAME_HERE");
        if (!folder.exists()) {
            if(folder.mkdirs()){
                Log.d("App","file created successfully");
            }else{
                Log.d("App","error creating folder");
            }
        }else{
            Log.d("App","folder exists");
        }
    }

这是 logcat 的输出:

2020-12-26 17:56:17.433 5981-5981/? E/Zygote: isWhitelistProcess - Process is Whitelisted
2020-12-26 17:56:17.434 5981-5981/? E/Zygote: accessInfo : 1
2020-12-26 17:56:17.508 5981-5981/? E/mple.pruebadoc: Unknown bits set in runtime_flags: 0x8000
2020-12-26 17:56:18.878 5981-9037/com.example.pruebadocs E/gralloc: Arm Module v1.0
2020-12-26 17:56:18.879 5981-9037/com.example.pruebadocs E/ion: ioctl c0044901 failed with code -1: Invalid argument

我总是收到“错误创建文件夹消息”,但我不知道为什么。

【问题讨论】:

标签: java android directory


【解决方案1】:

看看android-create-folders-in-internal-memory的答案。如果您正在寻找 java 中的解决方案,我认为他们是一个很好的例子。

编辑: 正如有人指出的那样,我发布了完整的示例以便于理解:

File folder = new File(Environment.getDataDirectory() + File.separator + "YOUR_FOLDER_NAME_HERE");
if (!folder.exists()) {
    if(!folder.mkdirs()){
        //DO SOME ERROR HANDLING HERE
}
}

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • 这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review
  • 我已经尝试过该代码,但创建文件时总是出错。有谁知道可能是什么问题?
  • @SamuelCoaster 你得到什么错误?如果您在这里发布,也许我们可以找到解决方案
  • 我已经把它放在问题中了
【解决方案2】:

它将检查(mydir)我的目录是否存在,如果不存在(mydir.mkdirs())将创建它

File mydir = context.getDir("users", Context.MODE_PRIVATE);    
if (!mydir.exists()) {
      mydir.mkdirs(); 
}

【讨论】:

  • 你能解释一下你的代码是做什么的吗?
  • 它将检查 (mydir) 我的目录是否存在,如果不存在 (mydir.mkdirs()) 将创建它
  • 用你的解释编辑你的答案,这样你的答案就不会被删除。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-18
  • 1970-01-01
  • 1970-01-01
  • 2020-10-04
  • 2015-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多