0

イメージをカードに保存しようとすると、「< ファイル パス > (IS A DIRECTORY)」というエラーが表示されますが、ファイルの絶対パスは正しく、ファイルはディレクトリではなくイメージです。ここで何が間違っていますか?イメージをディスクに保存する前に必要なすべてのディレクトリを作成し、すべての権限を持っていることに言及する必要があります。

file.getAbsolutePath() //returns something like this:

/mnt/sdcard/app_name/folder/image.jpg

.. 次のように画像ファイルを作成します。File img = new File(dir, image.jpg);

public static void saveImg(File pic, Bitmap picture) {
    try {
        FileOutputStream out = new FileOutputStream(pic);
        picture.compress(Bitmap.CompressFormat.JPEG, 100, out);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
4

1 に答える 1

2

最初のステップは、sd カードをチェックして、その名前のディレクトリが実際にあるかどうかを確認することです (万が一、ストリームを作成する前にイメージ ファイルで mkdirs() を呼び出している場合)。

次に、このコードを使用してストリームを作成してみてください。

String fileName = "image.jpg";
File path = Environment.getExternalStorageDirectory();
File file = new File(path, fileName);
path.mkdirs();
OutputStream os = new FileOutputStream(file);
于 2012-08-03T22:13:56.203 に答える