0

解決した

私はそれを少し変更します

File path = new File(Environment.getExternalStorageDirectory(), "AndroidPaint");
        File file = new File(path, tmpImg);
        path.mkdirs();
        if(!file.exists()) {
            file.createNewFile();
        }
        os = new FileOutputStream(file);
        source.compress(CompressFormat.JPEG, 100, os);
        os.flush();
        os.close();

また、問題は私が発見したソースビットマップである可能性があり、その後nullでした

問題

私の Android プログラムで、ビットマップを外部ストアに保存したいので、許可を得ました

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

そのためのコードを取得しました

public class SaveOpen {
public static void save(Bitmap source) {
    String tmpImg = String.valueOf(System.currentTimeMillis()) + ".jpg";
    OutputStream os = null;
    try {
        File dir = new File(Environment.getExternalStorageDirectory(), "myapp");
        if (!dir.mkdirs()) {
            Log.e("save", "Directory not created");
        }
        File file = new File(dir, tmpImg);
        if(!file.exists()) {
            file.createNewFile();
        }
        os = new FileOutputStream(file);
        source.compress(CompressFormat.JPEG, 100, os);
        os.flush();
        os.close();
    }
    catch (IOException e) {
        Log.d("save", e.getMessage());
    }
}

}

しかし、アプリの保存ボタンを押すと、

オープンに失敗しました: ENOTDIR (ディレクトリではありません)

例外、私が間違っていること。Google で見つけたすべてのガイドを試してみました。助けてください

4

4 に答える 4

0

私の問題は、外部ストレージにアクセスするためのアクセス許可を追加することで解決しました:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
于 2014-10-04T08:48:39.223 に答える
0

これを試して:

String myDir = Environment.getExternalStorageDirectory() + "/myapp";

File dir = new File(myDir);
于 2013-06-26T21:22:52.097 に答える