当我尝试使用getExternalStoragePublicDirectory()获取文件地址时,出现FileNotFoundException @ 5818。
这是我从Google Dev Documentation复制的方法:
public File getPublicDir(String albumName) {
// Get the directory for the user's public pictures directory.
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), albumName);
if (!file.mkdirs()) {
Log.e("PUBLIC DIRECTORY", "Directory not created");
}
return file;
}
我在这里调用此方法:
try{
FileOutputStream fos=new FileOutputStream(getPublicDir("mySnapshot"));
Boolean success=snapshot.compress(Bitmap.CompressFormat.PNG, 100, fos);
Toast.makeText(MainActivity.this,"Compress?
:"+success,Toast.LENGTH_SHORT).show();
fos.close();
}catch(IOException e){
e.printStackTrace();
Toast.makeText(MainActivity.this,"NOT SAVED",Toast.LENGTH_SHORT).show();
}
我不确定确切的专辑名称是什么。是要创建的文件夹的名称还是要存储的照片文件的名称?
这是我调试时抛出的错误的屏幕截图:
它在“ FileOutputStream fos = new FileOutputStream(getPublicDir(“ mySnapshot”));;”行引发错误。
添加了写权限。
这是我的应用(GIF)的样子,并引发了错误:
这是我创建文件夹(GIF)的位置:\
我发现here是一种将文本写入目录的方法,它可以工作,但仅适用于文本:
try {
FileOutputStream fos = new FileOutputStream(myExternalFile);
fos.write(inputText.getText().toString().getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
myExternalFile = new File(getExternalFilesDir(filepath), filename);
private String filename = "SampleFile.txt";
private String filepath = "MyFileStorage";