Android:使用getExternalStoragePublicDirectory(字符串类型)在外部存储上写入

sam*_*wei 1 storage android

所以我想在android上保存一些外部存储数据.我已经查看了api,其中说getExternalStoragePublicDirectory(String type) "如果需要,此方法将创建适当的目录." 这些是默认目录:音乐,播客,铃声,闹钟,通知,图片,电影,下载.所以我的问题是:

  1. 如何创建自己的新目录?
  2. 如何让用户看不到它?这样用户就不会对额外的文件夹感到沮丧.

cod*_*e22 7

你可以这样做,得到你的应用程序目录

String pathToExternalStorage = Environment.getExternalStorageDirectory().toString();
File appDirectory = new File(pathToExternalStorage + "/" + "AppName");   
// have the object build the directory structure, if needed.
appDirectory.mkdirs();
Run Code Online (Sandbox Code Playgroud)

现在,这将在外部存储上创建一个自定义目录,如android文档所述.

如果要保存不是特定于应用程序的文件,并且在卸载应用程序时不应删除这些文件,请将它们保存到外部存储器上的某个公共目录中.这些目录位于外部存储的根目录,例如Music /,Pictures /,Ringtones /等.

编辑:

使用Context.getDir(String name,int mode)方法创建或访问内部存储中的目录.从文档引用:

检索,创建需要的新目录,应用程序可以在其中放置自己的自定义数据文件.您可以使用返回的File对象来创建和访问此目录中的文件.请注意,通过File对象创建的文件只能由您自己的应用程序访问; 您只能设置整个目录的模式,而不能设置单个文件的模式.

例:

File mydir = context.getDir("mydir", Context.MODE_PRIVATE); //Creating an internal dir, set it to private so its only visible to our application;
Run Code Online (Sandbox Code Playgroud)


Ran*_*ku' 6

您可以使用coder_For_Life22关于创建文件夹的答案,然后使其对用户"更不可见",您可以执行以下操作:

  1. 将其命名为以dot开头.例如".yourappname"
  2. 将空文件".nomedia"放入您的文件夹.这可以防止媒体扫描程序记录您在该文件夹上的文件.