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

时间:2012-01-17 00:59:40

标签: android storage

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

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

2 个答案:

答案 0 :(得分:7)

您可以执行此类操作,获取您的应用程序目录

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

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

  

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

编辑:

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

  

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

示例:

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

答案 1 :(得分:6)

您可以使用coder_For_Life22关于创建文件夹的答案,然后为了让用户“更加隐身”,您可以执行以下操作:

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