アプリで画像 (ディスク上の場所) の uri 値を使用したいと考えています。そのためには、/sdcard/... で始まる文字列を使用する必要があります。
ファイル マネージャーを開いて画像を選択することもできますが、それでもすべてのファイル マネージャーは、/mnt/sdcard などの何かを先頭に追加します。/sdcard の前の文字数が常に同じとは限らないため、部分文字列を使用できません。
/sdcard からこの文字列を読みたいのですが、これを行う方法はありますか?
これは次のように行うことができます。
File cacheDir;
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED)) {
cacheDir = new File(
android.os.Environment.getExternalStorageDirectory(),
getString(R.string.cache_directory_image_cache));
} else {
cacheDir = getCacheDir();
}
String filepath = cacheDir.getAbsolutePath();
次に、ファイルパスにパスがあります!
うーん。indexOf("/sdcard") を使用して "/sdcard" の位置を見つけ、その時点から部分文字列を開始します。
String#substring( String#indexOf("/sdcard"), String#length() )
String.lastIndexOfを使用して、「/sdcard」の最後の出現を見つけ、index+offset から通常の部分文字列を使用して残りを読み取ることができます ...
Uは関数を使用できます
indexOf(文字列 str)
str は「/sdcard/」です
これにより、文字列が最初に出現したインデックスが得られます。