2016-01-21 57 views
0

我無法在我的android studio模擬器SD卡上保存URL圖像,我沒有得到這樣的文件和目錄錯誤。無法將URL圖像保存到Android Studio模擬器SD卡,打開失敗:ENOENT(沒有這樣的文件或目錄)

/** 
* Background Async Task to download file 
* */ 
class DownloadFileFromURL extends AsyncTask<String, String, String> { 

     /** 
     * Before starting background thread 
     * Show Progress Bar Dialog 
     * */ 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      showDialog(progress_bar_type); 
     } 

     /** 
     * Downloading file in background thread 
     * */ 
     @Override 
     protected String doInBackground(String... f_url) { 
      int count; 
      try { 
       URL url = new URL(f_url[0]); 
       URLConnection conection = url.openConnection(); 
       conection.connect(); 
       // getting file length 
       int lenghtOfFile = conection.getContentLength(); 

       // input stream to read file - with 8k buffer 
       InputStream input = new BufferedInputStream(url.openStream(), 8192); 

       // Output stream to write file 
       OutputStream output = new FileOutputStream("/sdcard/Download/downloadedfile.jpg"); 

       byte data[] = new byte[1024]; 

       long total = 0; 

       while ((count = input.read(data)) != -1) { 
        total += count; 
        // publishing the progress.... 
        // After this onProgressUpdate will be called 
        publishProgress(""+(int)((total*100)/lenghtOfFile)); 

        // writing data to file 
        output.write(data, 0, count); 
       } 

       // flushing output 
       output.flush(); 

       // closing streams 
       output.close(); 
       input.close(); 

      } catch (Exception e) { 
       Log.e("Error: ", e.getMessage()); 
      } 

      return null; 
     } 

     /** 
     * Updating progress bar 
     * */ 
     protected void onProgressUpdate(String... progress) { 
      // setting progress percentage 
      pDialog.setProgress(Integer.parseInt(progress[0])); 
     } 

     /** 
     * After completing background task 
     * Dismiss the progress dialog 
     * **/ 
     @Override 
     protected void onPostExecute(String file_url) { 
      // dismiss the dialog after the file was downloaded 
      dismissDialog(progress_bar_type); 

      // Displaying downloaded image into image view 
      // Reading image path from sdcard 
      String imagePath = "/sdcard/Download/downloadedfile.jpg"; 
      // setting downloaded into image view 
      my_image.setImageDrawable(Drawable.createFromPath(imagePath)); 
     } 

    } 
} 

無法將圖像保存在Android Studio模擬器SD卡中,我必須將它保存在imageview中。

我收到此錯誤。

com.example.androidhive E/Error:: /sdcard/Download/downloadedfile.jpg: open failed: EACCES (Permission denied) 
com.example.androidhive E/Surface: getSlotFromBufferLocked: unknown buffer: 0xac1b6c70 
com.example.androidhive E/BitmapFactory: Unable to decode stream: 
java.io.FileNotFoundException: /sdcard/Download/downloadedfile.jpg: open failed: ENOENT (No such file or directory) 

回答

0

嘗試添加權限在AndroidManifest.xml

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

這已經是there.The問題是一些涉及到SD卡我想的路徑。 –

+0

SD卡中的文件夾是「/ sdcard/Download」嗎?首先創建文件夾。 – malajisi

相關問題