2017-02-01 15 views
0

ユーザー名とパスワードを持つphp get urlからファイルをダウンロードしようとしています。私のコードはエラーを表示せず、ファイルがダウンロードされていることをプログレスバーが表示しますが、ログ内のリストを印刷しようとするとファイルが表示されません。私は間違って何をしていますか?アプリケーションのメモリ内にファイルを保存する

これはの中で呼び出されたAsyncTaskdoInBackgroundセクションのコードで、URLをパラメータに入れました。

D/Files: Path: /data/data/my.app.package/files 
D/Files: Size: 1 
D/Files: File Name: instant-run 

私が持っているファイルを見ることができない:私はこのコード

if (result.equals("")){ 
    String path = context.getFilesDir().toString(); 
    Log.d("Files", "Path: "+ path); 
    File directory = new File(path); 
    File[] files = directory.listFiles(); 
    Log.d("Files", "Size: " + files.length); 
    for (int i = 0; i<files.length; i++){ 
     Log.d("Files", "File Name: " + files[i].getName()); 
    } 
} 

しかし、私が印刷され得る唯一のことを書かれているonPostExecuteセクションでは

protected String doInBackground(String... sUrl) { 
      InputStream input = null; 
      OutputStream output = null; 
      HttpURLConnection connection = null; 
      try{ 
       URL url = new URL(sUrl[0]); 
       connection = (HttpURLConnection) url.openConnection(); 
       connection.connect(); 
       int fileLength = connection.getContentLength(); 
       input = connection.getInputStream(); 
       output = new FileOutputStream(context.getFilesDir()+"video.m3u"); 
       byte data[] = new byte[4096]; 
       long total = 0; 
       int count; 
       while ((count = input.read(data)) != -1){ 
        total = total + count; 
        if (fileLength > 0){ 
         publishProgress((int) (total * 100/fileLength)); 
        } 
        output.write(data, 0, count); 
       } 
      }catch (Exception e){ 
       return e.toString(); 
      }finally { 
       try{ 
        if (output != null){ 
         output.close(); 
        } 
        if (input != null){ 
         input.close(); 
        } 
       }catch (IOException ignored){ 
       } 
       if (connection != null){ 
        connection.disconnect(); 
       } 
      } 
      return ""; 
     } 

はこれですダウンロードされました。

答えて

0

私は問題が

output = new FileOutputStream(context.getFilesDir()+"video.m3u"); 

context.getFilesDir(この行だと思いますが)文字列を返さない、それはあなたがこの

output = new FileOutputStream(context.getFilesDir()..getAbsolutePath()+"/video.m3u"); 
+0

を行う必要があるFileオブジェクトです私はあなたに質問をすることができますか?このファイルをAndroidの外部プレーヤーで再生するにはどうすればよいですか?あなたは良いリンクを知っていますか? –

+0

どういう意味ですか?あなたのアプリの外でvideo.m3uをプレイしますか?あなたのアプリから実行しますか? –

+0

Android内蔵プレーヤーがm3uを再生できないと聞いたので、携帯電話の内蔵ストレージに保存して、外部プレーヤーで開く –

0

保存先のファイルパスが間違っています。今、あなたはそれがこのことができますoutput = new FileOutputStream(context.getFilesDir().getAbsolutePath()+"/video.m3u");

希望する必要があります output = new FileOutputStream(context.getFilesDir()+"video.m3u");

に保存されています。

関連する問題