2016-08-04 11 views
0

私はアンドロイドの特定のフォルダから特定のファイルを読み込もうとしていますが、そのファイルはSQLiteデータベースに読み込まれます。データベースへの読み込みは、資産フォルダから取得するとうまくいきます(ただし、ファイルが時間どおりに変更されるため、最終ビルドでは機能しません)。しかし、私は実際にファイルにアクセスするためのファイルが見つからないという問題があります。Android特定のファイルの場所を選択する

デバイス上のファイルのパスは "/ storage/emulated/0/Wellpro"と表示され、ファイル名は "orfice.txt"です。

現在、このファイルにアクセスするためのコードは、何らかの理由で何も見つからないため、3〜4つの異なるソースから一緒にスローされます。

 String fileName = "/storage/emulated/0/Wellpro/orfice.txt"; 
     String path = Environment.getExternalStorageDirectory()+fileName; 
     InputStream is = new FileInputStream(path); 
     BufferedReader buffer = new BufferedReader(new InputStreamReader(is, "UTF-8")); 

ご協力いただければ幸いです。

ありがとうございました。

答えて

1

getAbsolutePath()は、SDカードのフルパスを指定します。

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); 
String fileName = "myFile.txt"; 

// check if file path exist then read the file 
File f = new File(baseDir + File.Separator + fileName); 
FileInputStream fiStream = new FileInputStream(f); 
+0

ファイルがSDカードのパスに入っていません。それはフォルダ内に座っている。 また、私はこれが物事を変えるかどうか分からないが、それはSDカードではない。これは内部ストレージにありますが、どのアプリからでもアクセスできるストレージです。しかし、私が理解しているところからは、とにかく外部ストレージとして扱われます。 – Mitchell

+0

私は正確にuを取得しませんでした。あなたが理解するのを助けたら幸せ。 – Kathi

+0

ファイルが「Wellpro」という名前のフォルダに座っています。だから、私はそのフォルダに入る必要がありますが、SDカードのパスに行くと私は思っていないでしょうか? – Mitchell

0

を試してみてくださいあなたの最初の間違いはEnvironment.getExternalStorageDirectoryは()あなたのパスを提供しますので、ファイル名は "orfice.txt" でなければならないことです。 @ Kathiの解決策に従ってください。

問題が解決しない場合は、外部ストレージにアクセスするために必要な適切な権限が追加されていることを確認してください。あなたはAPI < 23用アプリケーションを開発する場合は、API = 23のために開発されている場合は、実行時に許可を求める必要があり、Androidのマニフェストに次の権限

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

を追加します。方法については、https://developer.android.com/training/permissions/requesting.htmlを参照してください。

+0

さて、getExternalStorageDirectory( "/ storage/emulated/0/Wellpro /")のように、getExternalStorageDirectoryに "/ storage/emulated/0/Wellpro /"を入れます。 – Mitchell

+0

いいえ使用する必要があります ファイルfile = new File(Environment.getExternalStorageDirectory()。getAbsolutePath()+ "/Wellpro/orfice.txt"); 注:外部ストレージは、オンボードフラッシュメモリの一部です。 –

+0

getAbsolutePath()を指定しないでEnvironment.getExtrenalStorageDirectory()を使用することをお勧めします。 –

関連する問題