Android在内存中创建文件夹

And*_*oid 15 storage android internal

是否允许在Android内部存储器中创建文件夹?示例:

- data
-- com.test.app (application's main package)
---databases (database files)
---files (private files for application)
---shared_prefs (shared preferences)

---users (folder which I want to create)
Run Code Online (Sandbox Code Playgroud)

我可以users在内部存储器中创建文件夹吗?

And*_*oid 41

我用它在内存中创建文件夹/文件:

File mydir = context.getDir("mydir", Context.MODE_PRIVATE); //Creating an internal dir;
File fileWithinMyDir = new File(mydir, "myfile"); //Getting a file within the dir.
FileOutputStream out = new FileOutputStream(fileWithinMyDir); //Use the stream as usual to write into the file.
Run Code Online (Sandbox Code Playgroud)


小智 17

如果您希望用户轻松访问您的文件,则不应使用此功能

File newdir= context.getDir("DirName", Context.MODE_PRIVATE);  //Don't do
if (!newdir.exists())
    newdir.mkdirs();
Run Code Online (Sandbox Code Playgroud)

INSTEAD,这样做:

要在手机主存储器(通常是内部存储器)上创建目录,您应该使用以下代码.请注意,Environment.getExternalStorageDirectory()中的ExternalStorage 不一定是指sdcard,它返回手机的主存储内存

File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "MyDirName");

if (!mediaStorageDir.exists()) {
    if (!mediaStorageDir.mkdirs()) {
        Log.d("App", "failed to create directory");
    }
}
Run Code Online (Sandbox Code Playgroud)

使用此代码创建的目录将轻松地对电话用户可见.另一种方法(首先提到)在位置创建目录(/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" />
Run Code Online (Sandbox Code Playgroud)