我想在我的应用程序中使用图像的 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();
然后你就有了文件路径中的路径!
您可以使用 String.lastIndexOf 查找"/sdcard"的最后一个出现,然后使用通常的子字符串从 index+offset 中读取其余部分。
似乎是一个非常简单的问题,使用 indexOf("/sdcard") 找到"/sdcard"的位置,然后从该点启动您的子字符串。
字符串#子字符串( 字符串#indexOf("/sdcard"), 字符串#长度() )
您可以使用函数
indexOf(String str)
其中 str 是 '/sdcard/'
这将为您提供字符串首次出现的索引。