9

我无法获得在内部存储器中创建文件夹的方法,

我在 Android 中进行了几次对话,在内部存储器中创建文件夹 以及从 android 的内部存储器读取文件时面临的问题。但我仍然无法满足我的要求。

我的要求是,我想在内存中创建一个文件夹,我想在那里存储一个视频。

非常感谢您提前提供宝贵的反馈。

4

6 回答 6

23

试试下面

File mydir = context.getDir("users", Context.MODE_PRIVATE); //Creating an internal dir;
if (!mydir.exists())
{
     mydir.mkdirs();
}     
于 2013-04-05T10:19:08.987 回答
8

这是我用于在内部存储器中创建文件的代码:

    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
于 2013-04-05T10:06:43.550 回答
3

要在手机主存储器(通常是内部存储器)上创建目录,您应该使用以下代码。请注意,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" />
于 2016-05-28T07:58:08.727 回答
1
<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;
}
于 2019-10-01T09:06:55.230 回答
0

“data/package_name”目录中有一个“cacheDirectory”。

如果你想在那个缓存中存储一​​些东西,

File cacheDir = new File(this.getCacheDir(), "temp");
if (!cacheDir.exists())
    cacheDir.mkdir();

是上下文。

于 2013-04-05T10:11:51.767 回答
0
try {
    File cashDir = new File(dir.getCanonicalPath(),"folder");
    if(!(cashDir.exists())) cashDir.mkdirs();
} catch (IOException e) {
    e.printStackTrace();
}
  
于 2020-07-12T07:50:32.693 回答