我无法获得在内部存储器中创建文件夹的方法,
我在 Android 中进行了几次对话,在内部存储器中创建文件夹 以及从 android 的内部存储器读取文件时面临的问题。但我仍然无法满足我的要求。
我的要求是,我想在内存中创建一个文件夹,我想在那里存储一个视频。
非常感谢您提前提供宝贵的反馈。
我无法获得在内部存储器中创建文件夹的方法,
我在 Android 中进行了几次对话,在内部存储器中创建文件夹 以及从 android 的内部存储器读取文件时面临的问题。但我仍然无法满足我的要求。
我的要求是,我想在内存中创建一个文件夹,我想在那里存储一个视频。
非常感谢您提前提供宝贵的反馈。
试试下面
File mydir = context.getDir("users", Context.MODE_PRIVATE); //Creating an internal dir;
if (!mydir.exists())
{
mydir.mkdirs();
}
这是我用于在内部存储器中创建文件的代码:
File myDir = context.getFilesDir();
// Documents Path
String documents = "documents/data";
File documentsFolder = new File(myDir, documents);
documentsFolder.mkdirs(); // this line creates data folder at documents directory
String publicC = "documents/public/api." + server;
File publicFolder = new File(myDir, publicC);
publicFolder.mkdirs(); // and this line creates public/api.myservername folder in internal memory
要在手机主存储器(通常是内部存储器)上创建目录,您应该使用以下代码。请注意,ExternalStorage inEnvironment.getExternalStorageDirectory()
不一定指 sdcard,它返回手机主存储内存
File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "MyDirName");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("App", "failed to create directory");
return null;
}
}
使用此代码创建的目录将对电话用户可见。另一种方法(如接受的答案)在位置(/data/data/package.name/app_MyDirName)中创建目录,因此普通手机用户将无法轻松访问它,因此您不应使用它来存储视频/照片等等
您将需要权限,在 AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
File direct = new File(Environment.getExternalStorageDirectory()+"/folder_name");
if(!direct.exists()) {
if(direct.mkdir()); //directory is created;
}
“data/package_name”目录中有一个“cacheDirectory”。
如果你想在那个缓存中存储一些东西,
File cacheDir = new File(this.getCacheDir(), "temp");
if (!cacheDir.exists())
cacheDir.mkdir();
这是上下文。
try {
File cashDir = new File(dir.getCanonicalPath(),"folder");
if(!(cashDir.exists())) cashDir.mkdirs();
} catch (IOException e) {
e.printStackTrace();
}