私は、特定の拡張子(現在テスト目的でtxtを使用している)のファイルに対して電話機のメモリをスキャンする必要があるアプリケーションを作成しています。私はAndroidファイルシステムが実際にどのように動作するかを理解することに問題があります - 私は内部と外部の両方のSDカードにアクセスする方法を見つけました、私はルートフォルダからファイルエクスプローラで開くことができます。私はアプリからこれらのフォルダにアクセスすることはできません。ここでAndroid:ファイルをユーザーの記憶装置から読み取る
は私のコードです:ここでは
private void findTXT(File directory) {
directory.setReadable(true); //found this advice - doesnt help
if(directory.listFiles() != null) { //if not empty
for (File i : directory.listFiles()) { //iterate trough all files
try {
if (i.isDirectory()) //if it is directory
findTXT(i); //recurse
else if (MimeTypeMap.getFileExtensionFromUrl(i.toURI().toURL().toString()) == "txt") //check ending of regular file
files.add(i); //store it
}
catch(IOException e) {}
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
TextView text = (TextView) findViewById(R.id.textView);
findTXT(new File("/sdcard/")); //this should be phones built-in memory
findTXT(new File("/mnt/sdcard")); //this is the same folder as above
findTXT(Environment.getExternalStorageDirectory()); //this one too
findTXT(new File("/mnt/ext_sdcard")); //this should be removable sdcard
for (File i : getExternalFilesDirs(null)) //this should be universal?
findTXT(i);
//list file names on screen
if(files != null) {
for (File i : files)
text.setText(text.getText() + i.getName() + "\n");
}
}
は私の権限は、問題が/ SDカードまたは他のフォルダ内のアプリのdoesntのリストファイルという、あるマニフェスト
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
である - それはいるようです
/storage/emulated/0/Android/data/*com.mycompany.appname*/files
私は理解していないパーミッションにいくつかの問題がありますか?でも、研究の数時間後、私はAndroid上でストレージがどのように機能するかを理解することは一切近い午前ないので...すべての答えのための
感謝:)
次のように使用すると、アプリケーションレベルではないことはできレデラーを書くランタイムpermisiionを依頼する必要がありますroot許可なしのファイル –
ああ、OK ...私はアプリケーションレベルのファイルは必要ない、私はユーザファイル(マルチメディア、ドキュメントなどの外部/内部SD上のファイル)が必要です。私は間違った場所を探していますか? –
Ledererここを参照してくださいhttp://stackoverflow.com/questions/5858107/how-to-get-file-path-from-sd-card-in-android –