2017-07-27 8 views
0

コンテンツをモバイルに保存するプログラムを作成したいと思います。問題は、モバイルでファイルマネージャでファイルを見ることができないことです。どのようにそれを見てどのフォルダですか?私は内部ストレージに保存したファイルにアクセスする方法

import android.content.Context; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

import java.io.FileOutputStream; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     String fileName = "MyFile"; 
     String content = "hello world"; 

     FileOutputStream outputStream = null; 
     try { 
      outputStream = openFileOutput(fileName, Context.MODE_APPEND); 
      outputStream.write(content.getBytes()); 
      outputStream.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

編集1:更新されたコード

public class MainActivity extends AppCompatActivity { 



    String content = "hello world"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    File f= getExternalFilesDir("arnav"); 
     Toast.makeText(this,""+f,Toast.LENGTH_SHORT).show(); 
File f1=new File(f,"ank.txt"); 
     FileOutputStream outputStream = null; 
     try { 
      outputStream = openFileOutput(f1.getAbsolutePath(), Context.MODE_APPEND); 
      outputStream.write(content.getBytes()); 
      outputStream.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

さて問題は、フォルダ(arnav)が作成したばかりされますが、ファイル(ank.txt)が取得されていないということである。ここ

コードです作成された?解決する方法?

答えて

0

アプリから保存されたファイルにアクセスするには、内部ストレージ> Android>データ> com.package_name.app_name>ファイルにアクセスし、アプリで保存したデータを見つけることができます。

+0

によって作成されたファイルのパスを返します。私は間違ったことをしましたか?マニフェストに権限を与える必要がありますか? – Ankit

+0

作成されます。そのようなファイルは、常にアプリケーションデータ用に作成されます。デバイスの内部ストレージを慎重に確認してください。 –

0

"openFileOutput()"メソッドは、このパスにファイルを保存します。/ data/data/package-name/files/ "/ data/data"ディレクトリが保護されているため、ファイルを見ることができません。 、見ることのできるルートモードのモバイルのみ。

+0

それから、ファイルマネージャー – Ankit

+0

で私に見えるようにファイルをモバイルに保存するには、ファイルを外部ストレージに保存することができます。 "Environment.getExternalStorageDirectory()"は、プライマリ共有/外部ストレージディレクトリを返します。その後、ファイルマネージャーに表示されます。 –

+0

しかし、sdカードが存在しない場合、私のファイルは表示されないように内部ストレージに保存する必要がありますか? – Ankit

0
MainActivity.this.getFilesDir().getAbsolutePath() 

は、問題は「com.package_name.app_nameが」このケースで作成された取得されていないということです openFileOutput

関連する問題