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

时间:2013-06-24 16:11:37

标签: java android eclipse

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

我用这个:

String folderPath = getFilesDir() + "Dir"

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

谢谢..

4 个答案:

答案 0 :(得分:2)

来自this帖子:

  

正确的方式:

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

享受。

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

    /**
 * 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();但请注意文档说的内容:

  

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

祝福。

答案 1 :(得分:2)

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

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浏览器应用中看到。

答案 2 :(得分:-1)

尝试下面的

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

答案 3 :(得分:-1)

这是我用过的,对我来说很好用:

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

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

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

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