Can';不要在我的设备android上的sd卡上写字

Can';不要在我的设备android上的sd卡上写字,android,file,storage,external,Android,File,Storage,External,我试图从服务器下载图像并将其保存在sd卡上,但失败了 当我在emulator或其他设备上尝试时,它工作正常,但我的设备不正常。我的设备是galaxy mini gt-s5570 这是我的代码: public String downloadImage(String imageUrl, String id, String folder) { String path = Environment.getExternalStorageDirectory().getAbsolutePath(

我试图从服务器下载图像并将其保存在sd卡上,但失败了

当我在emulator或其他设备上尝试时,它工作正常,但我的设备不正常。我的设备是galaxy mini gt-s5570

这是我的代码:

public String downloadImage(String imageUrl, String id, String folder) {
        String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/FBLogoQuiz/" + folder + "/";
        Log.d("path", path);
        File FBLogoQuiz = new File(path);
        FBLogoQuiz.mkdirs();
        FBLogoQuiz.mkdir();
        String data = "";
        try {
            URL url = new URL(imageUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true);
            connection.connect();
            InputStream input = connection.getInputStream();
            Bitmap myBitmap = BitmapFactory.decodeStream(input);

            // create a File object for the parent directory
            File FBLogoQuizDirectory = new File(path, id + ".png");

            // have the object build the directory structure, if needed.
            FBLogoQuizDirectory.createNewFile();
            data = String.valueOf(String.format(path + id + ".png"));

            FileOutputStream stream = new FileOutputStream(data);

            ByteArrayOutputStream outstream = new ByteArrayOutputStream();
            myBitmap.compress(Bitmap.CompressFormat.PNG, 85, outstream);
            byte[] byteArray = outstream.toByteArray();

            stream.write(byteArray);
            stream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return data;

    }
Manifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
createNewFile()
在创建文件时不创建新目录。您需要执行以下操作:

FBLogoQuizDirectory().getParentFile().mkdirs();

在创建文件之前。

这听起来很明显,但是
/fblogoquick/
和您要传递的字符串的文件夹是否存在?它将第一次创建。。我想它会自动检查这个目录是否存在,如果不存在,它会创建,如果不存在,它不会创建目录。请看我的答案。
FBLogoQuizDirectory().getParentFile().mkdirs();