我想获得一个公共存储我的android设备的路径。我有两个应用程序。一个是写一些日志文件,另一个用于读取它们(因为这个原因,我不能使用应用程序私有存储)。我想知道是否有方法,这将给我的设备“公共空间”的路径,我可以轻松地创建和读取文件。如何获得公共存储路径?外部存储(不是SD卡)
该解决方案是不是我要找:
http://developer.android.com/guide/topics/data/data-storage.html#filesInternal
既不是:
How to get the internal and external sdcard path in android
是否有我的问题一个简单的解决方案? 外部公共存储是我在找什么?
http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
的问题是,当我在我的设备上运行的应用程序一切正常,但后来当我在设备在没有存储卡的运行它,它不工作。所以我想使用外部公共存储,这不是一个存储卡...
我下面的代码不起作用(它不保存文件)。当我选择直接在Environment.getExternalStorageDirectory()。getAbsolutePath()中的目录时,它工作......我做错了什么? :
transient private final String DIRECTORY = "/Android/data/com.aaa.bbb.ccc/files/";
public void writeLog()
{
Calendar calendar = setDate();
File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + DIRECTORY);
if(!dir.exists())
dir.mkdir();
File file = new File (dir, "log_" + calendar.get(Calendar.YEAR) + "_"
+ ((calendar.get(Calendar.MONTH))+1) + "_"
+ calendar.get(Calendar.DAY_OF_MONTH)
+ ".dta");
...
}
UPDATE:
为什么此代码的工作:
File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Dir1/");
if(!dir.exists())
dir.mkdir();
这并不
File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Dir1/Dir2/Dir3/");
if(!dir.exists())
dir.mkdir();
为什么这种方法并不好:getExternalStorageDirectory()getAbsolutePath为什么我的代码是不工作...它应该工作在你的代码 – Marek
,问题是,在没有SD卡。所以我建议你想办法在手机内存上写文件。如果SD卡不存在,你如何写入它? – aditya
我使用的代码是写在SD卡(我有Galaxy S3)可见的手机内存中。问题是不同的。当我现在使用DIRECTORY时,它不起作用。但是,当我把DIRECTORY只放在一个目录中,如DIRECTORY =“/ SomeDir /”,它完美的工作......为什么? – Marek