在内部存储中创建公用文件夹
对不起我的英语,但我想写在这个论坛,因为在我看来是最好的。 现在我的问题:我想在内部存储中创建一个文件夹,与2个应用程序共享。 在我的应用程序中,我从我的服务器下载Apk并运行它。 在我使用外部存储之前,一切正常。 现在我想为没有外部存储的用户使用内部存储。
我用这个:
String folderPath = getFilesDir() + "Dir"
但是当我尝试运行apk时,不起作用。 我在手机上找不到这个文件夹。
谢谢..
从这篇文章:
正确的方式:
- 为您想要的目录创建一个文件(例如,File path = new
- 文件(getFilesDir(), “MyFolder文件”);)
- 在该文件上调用mkdirs()以创建目录(如果该目录不存在)
- 为输出文件创建一个文件(例如,File mypath = new File(path,“myfile.txt”);)
- 使用标准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(); }
这将创建一个新目录(如果尚未存在)或使用现有(如果已存在)。