2011-07-05 14 views
0

このURLを実行して、.mp4形式で保存すると、FileNotFound例外が発生します。私はここ http://vimeo.com/moogaloop/play/clip:7926539/5cd4f7989ee0cb5018c131260aa1fc8c/1309860388/ファイルをURLから保存します。

のMP4形式で保存されたとして、ブラウザからしようとした場合 同じURLは私のコードは次のとおりです。事前に

String storage = Environment.getExternalStorageState(); 
    Log.i("System out", "" + storage); 
    File rootsd = Environment.getExternalStorageDirectory(); 
    Log.d("ROOT PATH", "" + rootsd.getAbsolutePath()); 

    File mydir = new File(rootsd.toString() + "/unplugger"); 
    Log.i("DIR PATH", "" + mydir.getAbsolutePath()); 
    mydir.mkdir(); 

    URL u; 
    try { 
     u = new URL(
       "http://vimeo.com/moogaloop/play/clip:7926539/5cd4f7989ee0cb5018c131260aa1fc8c/1309860388/"); 

     HttpURLConnection c = (HttpURLConnection) u.openConnection(); 
     c.setRequestMethod("GET"); 
     c.setDoOutput(true); 

     c.connect(); 

     FileOutputStream f = new FileOutputStream(new File(mydir + "/" 
       + "myVideo.mp4")); 

     InputStream in = c.getInputStream(); 

     byte[] buffer = new byte[1024]; 
     int len1 = 0; 
     while ((len1 = in.read(buffer)) > 0) { 
      f.write(buffer, 0, len1); 
     } 
     f.close(); 
     c.disconnect(); 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     Log.i("System out","malformed :"+e.getMessage()); 
     Log.i("System out","malformed :"+e.toString()); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     Log.i("System out","io: "+e.getMessage()); 
     Log.i("System out","io: "+e.toString()); 
    } 

感謝。

+0

? –

+1

あなたは22の質問をしましたが、答えを受け入れませんでした。 –

答えて

2

変更この作品:

new File(mydir + "/" + "myVideo.mp4") 

代わりにこのことするには、次の行はエラーをスロー

new File(mydir, "myVideo.mp4") 
+0

実際に問題は、URLからデータを取得することです(この行のfilenotfound例外:InputStream in = c.getInputStream(); ) –

+0

HttpURLConnectionが自動的にリダイレクトを処理するとは思いません。あなたのリンクが直接ファイル自体を指しているわけではないので、おそらく3xxのHTTP応答を得ているでしょう。これはリダイレクトであり、コンテンツを含まないため、コンテンツを取得しようとすると 'FileNotFound'がスローされます。私は、Androidで利用可能なApacheのHttpClientライブラリを使用することをお勧めします。 HttpURLConnectionは使用しないでください。 –

関連する問題