我正在尝试将文件写入我的HTC Hero手机中的SD卡。我使用以下方法在SDCard中创建文件:
File = new File(path.getAbsolutePath(),“Filename.txt”);
其中path是我的externalStorageDirectory(即\ sdcard)的路径
当我记录此文件的路径时,它会说\ sdcard \ filename.txt
但是,当我创建一个fileoutputstream来写入文件时,文件路径突然变为\ data \ data而我无法访问它。
有人可以帮助澄清我如何在SD卡中创建文件然后写信给它吗?
谢谢!
编辑:
path = Environment.getExternalStorageDirectory();
Log.d("SDCARDPLSWORK", path.toString());
try
{
myFile = new File(path.getAbsolutePath(), "SensorValues.txt");
boolean i = myFile.createNewFile();
Log.d("SDCARDPLSWORK", myFile.toString() + " " + i);
fos = new FileOutputStream(myFile);
Log.d("FILEANDROID", getFileStreamPath("SensorValues.txt").toString());
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
这就是我正在做的事情。直到SDCARDPLSWORK正确的部分,但是当涉及到FILEANDROID日志时,它会进入私有数据存储。
答案 0 :(得分:0)
对SD卡路径使用 Environment.getExternalStorageDirectory()。
Environment.getExternalStorageDirectory()+"/yourFilename.png"
答案 1 :(得分:0)
getFileStreamPath(..)从本地目录读取。您的调试代码错误。
答案 2 :(得分:0)
Environment.getExternalStorageDirectory()将获取sdcard的根文件夹。
@JAVADOC
应用程序不应直接使用 这个顶级目录,以便 避免污染用户的根 命名空间。任何私有的文件 应该放在应用程序中 返回的目录 Context.getExternalFilesDir,其中 系统将负责删除if 应用程序已卸载。其他 共享文件应放在一个文件中 返回的目录 getExternalStoragePublicDirectory(字符串)。
/ data / data / ...此位置用于存储包裹的文件,请尝试以下代码:
File path = getApplicationContext().getFilesDir(); // get your private folder
Log.d("SDCARDPLSWORK", path.toString());
File myFile;
FileOutputStream fos;
try {
myFile = new File(path.getAbsolutePath(),
"SensorValues.txt");
boolean i = myFile.createNewFile();
Log.d("SDCARDPLSWORK", myFile.toString() + " " + i);
fos = new FileOutputStream(myFile);
Log.d("FILEANDROID", getFileStreamPath("SensorValues.txt")
.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}