为app创建一个文件夹

时间:2017-10-20 18:29:50

标签: android android-file

以下代码不会在我的设备中创建文件夹。

    String intStorageDirectory = context.getFilesDir().toString();
    File folder = new File(intStorageDirectory, "test");
    folder.createNewFile();;

当用户安装媒体时,我需要为我的应用创建一个用于存储媒体的文件夹。该文件夹应该在文件资源管理器中可见。我该怎么办?

3 个答案:

答案 0 :(得分:1)

使用您创建文件的当前代码段,您还可以通过创建文件来创建文件夹,但您当前的目录是基本文件夹,getFilesDir()为您的应用指向internal storage,除非明确声明,否则该应用程序不可见或无法访问。您可以使用new File().createNewFile()创建文件夹和文件,也可以使用mkdirs()创建仅文件夹,但无法使用文件资源管理器应用程序显示该文件夹,文件夹及其中的文件将被删除当/如果用户卸载您的应用时。

要在外部保存文件(这并不意味着保存到SD卡),您可以使用

创建目录和文件
File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), folderName);
if (!mediaStorageDir.exists()) {
    mediaStorageDir.mkdirs()
}
File mediaFile = new File(mediaStorageDir.getAbsolutePath() + File.separator + fileName);

您需要某种OutputStream来将数据写入该文件。

请确保在AndroidManifest.xml文件中询问<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />,并在android:targetSdkVersion="23"或更高版本

上询问运行时的写入权限

答案 1 :(得分:0)

new File(context.getFielsDir(), "test").mkdirs();

createNewFile创建一个文件,而不是文件夹。使用mkdirs而不是mkdir可确保所有父项都存在。当你已经拥有一个文件时,也没有理由去查看字符串。

答案 2 :(得分:0)

添加folder.mkdirs();应该代替folder.createNewFile();并且不要忘记添加权限。

这将在您的数据目录中创建一个文件夹。 只是一个建议,如果你想将媒体存储在SD卡文件夹中,可能是Environment.getExternalStorageDirectory()很好。