gpt4 book ai didi

android - Mkdirs 不在内部存储中创建文件夹 (Android)

转载 作者:太空狗 更新时间:2023-10-29 15:33:26 26 4
gpt4 key购买 nike

我正在尝试在应用程序的内部存储中创建一个文件夹,以便我可以将文件下载到其中。但这似乎不起作用。我已经找了好几个小时的解决方案,但找不到,这让我快要疯了。

这是创建文件夹的代码:

String intStorageDirectory = Environment.getDataDirectory().toString();
File folder = new File(intStorageDirectory, "testthreepdf");
folder.mkdirs();

此代码始终返回“不存在”:

File f = new File(Environment.getDataDirectory() + "/testthreepdf");
if(f.exists())
{
Log.i("testApp", f.toString() + "EXISTS");
}
else {
Log.i("testApp", f.toString() + " DOES NOT EXIST");
}

这些是安卓权限:

<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE" >
</uses-permission>

有人知道这段代码有什么问题吗?

最佳答案

Environment.getDataDirectory() 返回所有应用程序共享的顶级数据文件夹。您不能在那里创建文件夹。要在应用的数据文件夹中创建文件夹,请改用 getFilesDir(),如下所示:

String intStorageDirectory = getFilesDir().toString();
File folder = new File(intStorageDirectory, "testthreepdf");
folder.mkdirs();

您需要一个上下文来调用 getFilesDir()。

有关 getDataDirectory() 和 getFilesDir() 之间区别的更多信息,请参阅 this StackOverflow question .

关于android - Mkdirs 不在内部存储中创建文件夹 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27663466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com