【问题标题】:absolute path to directory in the internal storage in android?android内部存储目录的绝对路径?
【发布时间】:2014-11-12 09:06:58
【问题描述】:

我想将我的应用程序所需的文件保存在内部存储下的目录中。在上一个阶段,我使用 externalStorageDirectory 来存储我的数据。 现在我正在使用下面的代码来引用我的外部目录

 Environment.getExternalStorageDirectory()+"/mydirectory"; 

我需要一个等效的代码来引用我在内部目录中的目录,任何人都可以帮助我...谢谢,

解决方法:

getFilesDir()+"/mydirectory";

感谢您的所有建议和帮助。

【问题讨论】:

标签: android directory internal-storage


【解决方案1】:

为此使用getFilesDir()

来自docs

返回文件系统上目录的绝对路径 存储使用 openFileOutput(String, int) 创建的文件。

读取或写入返回的路径不需要权限, 因为这个路径是内部存储。

为了回答您的评论,我将引用文档docs

默认情况下,保存到内部存储的文件是您的私有文件 应用程序和其他应用程序无法访问它们(也不能 用户)。当用户卸载您的应用程序时,这些文件是 删除。

【讨论】:

  • 谢谢,@user3249477 这对我来说是最好的选择。它让我的文件更受保护吗?
  • 再告诉我一件事,我得到的绝对路径是:“/data/data/packagename/files” 会为其他设备更改吗?
  • @user3737266 是的,它在其他设备上可能会有所不同。永远不要像总是使用 getFilesDir 那样对其进行硬编码。
【解决方案2】:
public  File createDir() {
         FIle DIR=null;
         if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
                DIR=new File(android.os.Environment.getExternalStorageDirectory()+DIRNAME);
            else
                DIR=context.getCacheDir();
            if(!DIR.exists())
                DIR.mkdirs();
            return DIR;  
    }

这个我在我的一个应用程序中使用,它在外部创建目录,如果它已安装或不存在,它将在内部存储中创建

【讨论】:

    【解决方案3】:

    你可以用这个:

    File f = new File(Environment.getDataDirectory(), "subdir");
    

    【讨论】:

    • 如果我使用下面的代码,你能告诉我结果如何。 Log.d("reaching", ":directory"+Environment.getDataDirectory().getAbsolutePath()+"mydirectory");
    猜你喜欢
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 2016-09-26
    • 2012-07-21
    • 2013-09-11
    相关资源
    最近更新 更多