我可以访问我用USB创建的文件吗?

时间:2010-02-04 21:59:53

标签: android

我迷失了。

我使用这个(剥离的)代码创建文件:

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 ...

2 个答案:

答案 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卡”时出现的第一件事。)