我迷失了。
我使用这个(剥离的)代码创建文件:
File dir = getBaseContext().getDir(dirPath, MODE_WORLD_WRITEABLE);
try {
File file = new File(dir, fileName);
FileOutputStream fous = new FileOutputStream(file);
fous.write(data);
fous.flush();
fous.close();
long l = file.length();
Log.i("PpCameraActivity", "File size : " + l);
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getBaseContext(), "Error while trying to write photo file", Toast.LENGTH_LONG).show();
}
我可以用logcat验证我的文件似乎是创建的(它有一个非空的长度)。但是当我将Android设备连接到PC时,我看不到它。 那么......我的文件在哪里?它隐藏了吗?擦掉?
编辑:我现在正试图在SDCard上专门写一下,使用这个:
File root = Environment.getExternalStorageDirectory();
File jpegFile = new File(root.getAbsolutePath() + "/myApplication/" + filePath);
try {
jpegFile.mkdirs();
FileOutputStream fous = new FileOutputStream(jpegFile);
fous.write(data);
fous.flush();
fous.close();
Log.i("PpCameraActivity", "File written : " + jpegFile.getAbsolutePath());
Toast.makeText(getBaseContext(), "File written : " + jpegFile.getAbsolutePath(), Toast.LENGTH_LONG).show();
long l = jpegFile.length();
Log.i("PpCameraActivity", "File size : " + l);
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getBaseContext(), "Error while trying to write photo file", Toast.LENGTH_LONG).show();
}
但是我在FileOutputStream创建时得到了一个FileNotFoundException ...
答案 0 :(得分:1)
确定找到了。
不是Android问题,只是我的错误(不是第一次):mkdirs必须应用于父文件,而不是我要写的文件...
所以,对于有兴趣的人:
使用
访问SD卡File root = Environment.getExternalStorageDirectory();
不要忘记要求此权限
WRITE_EXTERNAL_STORAGE
然后像往常一样制作mkdirs和文件创建。
并且不要忘记:当Android设备安装在您的PC上时,它无法在sdard上写入。
答案 1 :(得分:0)
您可能没有写入SD卡,并且您可以通过USB连接看到SD内容。
尝试这样的事情:http://androidgps.blogspot.com/2008/09/writing-to-sd-card-in-android.html(这是我搜索“Android写入SD卡”时出现的第一件事。)