0

ファイルのリスト(ファイルの絶対パス)を保存しています。それは、内部ストレージであってもよく、外部ストレージであってもよい。マウントポイントは存在するがファイルが存在しないか確認する

これらのファイルをクラウド(Googleドライブ)と同期している間に、ファイルが存在するかどうかをローカル(File.exists())で確認していて、クラウドからファイルを削除しない場合はチェックします。

しかし、外部ストレージがマウントされていないとクラウドからファイルが削除されてしまいます。しかし、それは起こるべきではありません。マウントポイントが利用できない場合は、ファイルをチェックすべきではありません。どうすればその状態を確認できますか?どのように私は、ストレージがマウントされている場合だけにして確認するチェックすることができます/storage/4XXX-1234/Android/media/com.example/Documents/external.txt

  • 内部::/storage/emulated/0/internal.txt
  • 外部例えば

    は、内部&外部ストレージ内のファイルは、何かのように見えますファイルの存在のために?

答えて

0

ファイルがマウントされたパスにあるかどうかを見つける方法が見つかりました。

File localFile = new File("/storage/4XXX-1234/Android/media/com.example/Documents/external.txt"); 

if(Environment.getExternalStorageState(new File(localFile.getAbsolutePath())) 
     .equalsIgnoreCase("mounted"))) { 
    Log.d(TAG,"File is on the mounted path"); 
} 
0

ディレクトリが存在するかどうかを確認してください。

たとえば、使用する前にディレクトリ/storage/4XXX-1234が存在するかどうか最初に確認します。

使用する前にディレクトリ/storage/4XXX-1234/Android/media/com.example/Documentsが存在するかどうかを確認することもできます。

String path = "/storage/4XXX-1234/Android/media/com.example/Documents/external.txt"; 

File file = new File (path); 

if(!file.getParentFile().exists()) 
    return; // no dir. Not mounted 
+0

確認する必要のあるパスが混乱していますか?いくら?異なるデバイスは異なるストレージパスを持ちます。 '/ storage'や'/storage/4XXX-1234/'のようになります。 – kirtan403

+0

誰かが "Documents"ディレクトリを削除するかもしれませんが、ストレージはマウントされています。その後、シナリオは失敗します。 – kirtan403

+0

ファイルのディレクトリはパスです! /storage/4XXX-1234/Android/media/com.example/Documents/external.txtのように。 – greenapps

関連する問題