2016-10-06 22 views
1

私はPDFファイルといくつかのdocファイルをfirebaseストレージに保存しています。Firebase StorageからAndroidのExternal_Storageにファイルをダウンロードする方法

Firebase Storageからデバイスの外部ストレージにファイルをダウンロードするにはどうすればよいですか?

public void writeExternalStorage() { 

     String filename; 
     String completepath; 


     mref = FirebaseStorage.getInstance().getReference(); 
     StorageReference filepath = mref.child("MyFiles").child("firstFile.pdf"); 
     InputStream inputStream = null; 
     File file = null; 
     FileOutputStream fileOutputStream = null; 
     String state = Environment.getExternalStorageState(); 
     if (Environment.MEDIA_MOUNTED.equals(state)) { 
      try { 
       file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath() + "/TestPurpose"); 
       // Log.d("PATH", file.toString()); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 


     } 


    } 

Firstfile.pdfファイルをExternal_storageのDocument/TestPurpose/Folderにダウンロードします。どのようにそれを行うことができますか?

+0

ファイルのダウンロードや保存のどの部分がわかりませんか? –

+0

広すぎるとフラグが立てられています。https://developer.android.com/training/basics/data-storage/files.htmlを見て、それらのことを試してみてください。これらを有効にすると、外部ストレージを指すファイルURIを使用できるようになり、物事はJust Work™ –

答えて

5
private void downloadFile() { 
    FirebaseStorage storage = FirebaseStorage.getInstance(); 
    StorageReference storageRef = storage.getReferenceFromUrl("<your_bucket>"); 
    StorageReference islandRef = storageRef.child("file.txt"); 

    File rootPath = new File(Environment.getExternalStorageDirectory(), "file_name"); 
    if(!rootPath.exists()) { 
     rootPath.mkdirs(); 
    } 

    final File localFile = new File(rootPath,"imageName.txt"); 

    islandRef.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() { 
     @Override 
     public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) { 
      Log.e("firebase ",";local tem file created created " +localFile.toString()); 
      // updateDb(timestamp,localFile.toString(),position); 
     } 
    }).addOnFailureListener(new OnFailureListener() { 
     @Override 
     public void onFailure(@NonNull Exception exception) { 
      Log.e("firebase ",";local tem file not created created " +exception.toString()); 
     } 
    }); 
} 
+0

する必要があります。これは本当に助けになりました!しかし、もし私がFirebaseにアップロードするすべての画像の名前を変更したいのであれば?この行に何かを追加して、すべてのファイルの変更を継続することができますか? 'ファイルlocalFile =新しいファイル(rootPath、" imageName.txt ");' – Chip

関連する問題