以下代码不会在我的设备中创建文件夹。
String intStorageDirectory = context.getFilesDir().toString();
File folder = new File(intStorageDirectory, "test");
folder.createNewFile();;
当用户安装媒体时,我需要为我的应用创建一个用于存储媒体的文件夹。该文件夹应该在文件资源管理器中可见。我该怎么办?
答案 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()很好。