在内部存储中创建公用文件夹

对不起我的英语,但我想写在这个论坛,因为在我看来是最好的。 现在我的问题:我想在内部存储中创建一个文件夹,与2个应用程序共享。 在我的应用程序中,我从我的服务器下载Apk并运行它。 在我使用外部存储之前,一切正常。 现在我想为没有外部存储的用户使用内部存储。

我用这个:

String folderPath = getFilesDir() + "Dir" 

但是当我尝试运行apk时,不起作用。 我在手机上找不到这个文件夹。

谢谢..

从这篇文章:

正确的方式:

  1. 为您想要的目录创建一个文件(例如,File path = new
  2. 文件(getFilesDir(), “MyFolder文件”);)
  3. 在该文件上调用mkdirs()以创建目录(如果该目录不存在)
  4. 为输出文件创建一个文件(例如,File mypath = new File(path,“myfile.txt”);)
  5. 使用标准Java I / O写入该文件(例如,使用新的BufferedWriter(新的FileWriter(mypath)))

请享用。

另外要创建我使用的公共文件:

  /** * Context.MODE_PRIVATE will create the file (or replace a file of the same name) and make it private to your application. * Other modes available are: MODE_APPEND, MODE_WORLD_READABLE, and MODE_WORLD_WRITEABLE. */ public static void createInternalFile(Context theContext, String theFileName, byte[] theData, int theMode) { FileOutputStream fos = null; try { fos = theContext.openFileOutput(theFileName, theMode); fos.write(theData); fos.close(); } catch (FileNotFoundException e) { Log.e(TAG, "[createInternalFile]" + e.getMessage()); } catch (IOException e) { Log.e(TAG, "[createInternalFile]" + e.getMessage()); } } 

只需将模式设置为MODE_WORLD_WRITEABLE或MODE_WORLD_READABLE(注意它们已从api lvl 17中弃用)。

您还可以使用theContext.getDir(); 但请注意doc说的话:

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

最好的祝愿。

您可以在现有系统公用文件夹中创建公共,可以从内部存储中访问一些公用文件夹:

 public static String DIRECTORY_MUSIC = "Music"; public static String DIRECTORY_PODCASTS = "Podcasts"; public static String DIRECTORY_RINGTONES = "Ringtones"; public static String DIRECTORY_ALARMS = "Alarms"; public static String DIRECTORY_NOTIFICATIONS = "Notifications"; public static String DIRECTORY_PICTURES = "Pictures"; public static String DIRECTORY_MOVIES = "Movies"; public static String DIRECTORY_DOWNLOADS = "Download"; public static String DIRECTORY_DCIM = "DCIM"; public static String DIRECTORY_DOCUMENTS = "Documents"; 

要创建文件夹,请使用以下代码:

 File myDirectory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "MyPublicFolder"); myDirectory.mkdir(); 

通过此示例,将在Documents中创建公共,并且可以在任何文件的Android浏览器应用程序中显示。

尝试以下

 File mydir = context.getDir("Newfolder", Context.MODE_PRIVATE); //Creating an internal dir; if(!mydir.exists) { mydir.mkdirs(); } 

这是我用过的,对我来说工作正常:

String extStorageDirectory = Environment.getExternalStorageDirectory()。toString();

文件文件=新文件(extStorageDirectory,fileName);

 File parent=file.getParentFile(); if(!parent.exists()){ parent.mkdirs(); } 

这将创建一个新目录(如果尚未存在)或使用现有(如果已存在)。