2011-04-29 2 views
3

안녕 얘들 아 왜 내가 왜이 파일을 외부 sd에 저장할 수 없는지 말해 줄 수 있습니까? 내 코드를 확인해 주시겠습니까?Android가 외부 SD 카드에 저장 하시겠습니까?

public void Download() 
    { 
     try { 
      //this is the file you want to download from the remote server 
      String path ="http://mozilla.cdn.leaseweb.com/firefox/releases/4.0.1/win32/en-US/Firefox%20Setup%204.0.1.exe"; 
      //this is the name of the local file you will create 
      String targetFileName; 
       boolean eof = false; 
      URL u = new URL(path); 
      HttpURLConnection c = (HttpURLConnection) u.openConnection(); 
      c.setRequestMethod("GET"); 
      c.setDoOutput(true); 
      c.connect(); 

      //String svto = Environment.getExternalStorageState().toString(); 
      File path1 = Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES); 

      path1.mkdirs(); 
      FileOutputStream f = new FileOutputStream(new File(path1+"/fox.exe")); 
       InputStream in = c.getInputStream(); 
       byte[] buffer = new byte[1024]; 
       int len1 = 0; 
       while ((len1 = in.read(buffer)) != -1) { 
       f.write(buffer,0, len1); 
         } 
      f.close(); 
      } catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      } catch (ProtocolException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 
+0

무엇이 오류입니까? – OceanBlue

+0

이 경우 오류 및/또는 스택 추적을 확인하는 것이 좋습니다. – Devunwired

답변

2

당신이 당신의 AndroidManifest.xml 파일에 다음 권한이없는 경우이 작업이 실패합니다

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

하는 최상위 내 <manifest> 태그가 아닌 <application> 태그를 넣어해야합니다 당신의 활동이 지정됩니다.

+0

그리고 android.permission.INTERNET도 – Devunwired

+0

좋은 전화, 편집. – Jordan

+0

나는 그것들을 이미 추가했지만 아직도 그것을 외부에 가지 못하게한다. 파일을 데이터/데이터에 저장할 수 있지만 사용자는 액세스 할 수 없습니다. – cruisx

0

이전과 비슷한 문제가있었습니다. Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

과 같은 코드를 호출하기 전에 수동으로 SD 카드에 디렉토리를 만들어야한다는 것이 밝혀졌습니다. 해당 디렉토리의 파일 탐색기에 절대 경로가 있는지 확인하십시오. 그렇지 않으면 adb shell을 통해 생성 한 다음 다시 시도하십시오. 이것은 내 문제를 해결했지만, 반드시 당신의 문제를 해결하지 못할 수도 있습니다.

+0

그 일을하는 방법은 여전히 ​​작동하지 않는 것 같습니다. = /. 그리고 내 휴대 전화와 에뮬레이터 모두에서 동일한 결과를 테스트합니다. – cruisx