2017-04-16 13 views
0

私の電話のbluetoothフォルダにあるすべての.txtファイルを検索し、ファイルを開いて特定のコンテンツを取得するアプリを作成しています日付とランタイム)。特定のフォルダ内の.txtファイルからコンテンツを検索して取得する

コンピュータがBluetooth経由で電話機に.txtファイルを送信すると、アプリケーションはそのフォルダを検査する必要があります。

すべてのファイルを見つけて開いて分析するためにどのような機能を使用できますか?

事前に感謝します。今、あなたはこの

File[] files = directory.listFiles(); 

今、私たちはそのAかどうかを確認するために、各ファイルを反復処理のようなファイルのリストを取得することができます

String path = Environment.getExternalStorageDirectory().toString()+"/bluetooth"; 
File directory = new File(path); 

答えて

0

まず、検索するディレクトリを取得します。アップ

012アンドロイドM上で実行されている場合、またはtxtファイル

StringBuilder text = new Stringbuilder; 
for (File f : files) 
{ 
    if (f.isFile() && f.getpath().endswith(".txt")) { 
    //it is a txt file, now do your action 
    try { 
     //read file 
     BufferedReader br = new BufferedReader(new FileReader(f)); 
     String line; 
     br.readLine(); 
     //read each line 
     while ((line = br.readLine())) { 
      //Write your conditions here 
      //add line to stringbuilder 
      text.append(line); 
     } 
     br.close(); 
    } catch (IOException e) { 
     //You'll need to add proper error handling here 
     Log.d("Exception",e.toString()); 
    } 
    } 
} 

は、許可のためにこれを追加します。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { 
      requestPermissions(new String[]{ 
        Manifest.permission.READ_EXTERNAL_STORAGE 
      }, 10); 

     } 
    } 
+0

私はこのソリューションをチェックしていると、私はNullポインタ例外を取得し、私はパスがあることを取得するシステムのプリントから がある: /ストレージ/ '/ 0 /ブルートゥース をエミュレートし、 からcode '(File [] files = directory.listFiles();) nullが返されます。 私の電話のBluetoothのフォルダには現在12個のテキストファイルが含まれているので、何かを拾う必要があります。間違ったフォルダを見つけることができますか? –

+0

listFiles()メソッドのドキュメントでは、 "この抽象パス名がディレクトリを示さない場合、またはI/Oエラーが発生した場合はnullを返します。"また、ストレージを読み込む権限があるかどうかを確認してください。 Android M以上を使用している場合は、実行時にも許可を求める必要があります。 –

+0

マニフェストに書きましたが、マニフェストに「use-permission android:name = "android.permission.READ_EXTERNAL_STORAGE" /> と何も変わりません。 –

関連する問題