为什么 mkdirs() 方法不起作用?
Why is the mkdirs() method not working?
在任何人将其标记为重复之前,我想让你知道我已经解决了很多关于 SO 上的 mkdirs()
方法的问题并且 none 对我有用所以我相信我有一个值得提问的问题的特例。
我尝试使用 mkdir()
,将目录 File
的实例化更改为
new File(Environment.getExternalStorageDirectory())
new File(Environment.getExternalStorageDirectory().getAbsolutePath())
new File(Environment.getExternalStorageDirectory(), "Directory")
new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "Directory")
new File(Environment.getExternalStorageDirectory().toString + "/Directory")
没有任何效果。
注意:我的清单中也有 WRITE_EXTERNAL_STORAGE
权限。
这是我的代码片段:
File rootDirectory = new File(Environment.getExternalStorageDirectory(), getActivity().getPackageName());
File directory = new File(rootDirectory, "Directory");
if (!directory.exists()) {
if(directory.mkdirs()){
Log.d("log", "exists");
} else {
Log.d("log", "not exists");
}
}
使用这个
File rootDirectory = new File(Environment.getExternalStorageDirectory(),
new File(Environment.DIRECTORY_DOCUMENTS, getActivity().getPackageName()));
// if you target below api 19 use this => DIRECTORY_DOWNLOADS
// now your old code follows life is good
File directory = new File(rootDirectory, "Directory");
if (!directory.exists()) {
if(directory.mkdirs()){
Log.d("log", "exists");
} else {
Log.d("log", "not exists");
}
}
来自您的评论
But I don't want the users to be able to see the files I am going to save into the folder
你可以使用 internal memory 并调用它
[getDir(java.lang.String, int)](http://developer.android.com/reference/android/content/Context.html#getDir(java.lang.String, int))
如果对您有帮助,请告诉我
mkdirs 创建完整文件夹树,mkdir 仅创建完整文件夹树路径中的最后一个文件夹
使用这样的代码:
String foldername = "HelloWorld";
File dir = new File(Environment.getExternalStorageDirectory() + "/" + foldername);
if (dir.exists() && dir.isDirectory()) {
Log.d("log", "exists");
} else {
//noinspection ResultOfMethodCallIgnored
dir.mkdir();
Log.d("log", "created");
}
在任何人将其标记为重复之前,我想让你知道我已经解决了很多关于 SO 上的 mkdirs()
方法的问题并且 none 对我有用所以我相信我有一个值得提问的问题的特例。
我尝试使用 mkdir()
,将目录 File
的实例化更改为
new File(Environment.getExternalStorageDirectory())
new File(Environment.getExternalStorageDirectory().getAbsolutePath())
new File(Environment.getExternalStorageDirectory(), "Directory")
new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "Directory")
new File(Environment.getExternalStorageDirectory().toString + "/Directory")
没有任何效果。
注意:我的清单中也有 WRITE_EXTERNAL_STORAGE
权限。
这是我的代码片段:
File rootDirectory = new File(Environment.getExternalStorageDirectory(), getActivity().getPackageName());
File directory = new File(rootDirectory, "Directory");
if (!directory.exists()) {
if(directory.mkdirs()){
Log.d("log", "exists");
} else {
Log.d("log", "not exists");
}
}
使用这个
File rootDirectory = new File(Environment.getExternalStorageDirectory(),
new File(Environment.DIRECTORY_DOCUMENTS, getActivity().getPackageName()));
// if you target below api 19 use this => DIRECTORY_DOWNLOADS
// now your old code follows life is good
File directory = new File(rootDirectory, "Directory");
if (!directory.exists()) {
if(directory.mkdirs()){
Log.d("log", "exists");
} else {
Log.d("log", "not exists");
}
}
来自您的评论
But I don't want the users to be able to see the files I am going to save into the folder
你可以使用 internal memory 并调用它 [getDir(java.lang.String, int)](http://developer.android.com/reference/android/content/Context.html#getDir(java.lang.String, int))
如果对您有帮助,请告诉我
mkdirs 创建完整文件夹树,mkdir 仅创建完整文件夹树路径中的最后一个文件夹
使用这样的代码:
String foldername = "HelloWorld";
File dir = new File(Environment.getExternalStorageDirectory() + "/" + foldername);
if (dir.exists() && dir.isDirectory()) {
Log.d("log", "exists");
} else {
//noinspection ResultOfMethodCallIgnored
dir.mkdir();
Log.d("log", "created");
}