0

我想在我的应用程序中使用图像的 uri 值(磁盘上的位置)。为此,我必须使用以 /sdcard/... 开头的字符串

我可以打开一个文件管理器来帮助选择图片,但即便如此,每个文件管理器都会在前面添加一些东西,无论是 /mnt/sdcard 还是其他东西。我不能使用子字符串,因为 /sdcard 前面的字母数量并不总是相同的。

我想从 /sdcard 开始读取这个字符串,有没有办法可以做到这一点?

4

4 回答 4

1

你可以这样做:

    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();

然后你在文件路径中有路径!

于 2012-04-23T09:02:41.560 回答
0

嗯。似乎是一个非常简单的问题,使用 indexOf("/sdcard") 查找“/sdcard”的位置,然后从该点启动您的子字符串。

String#substring(String#indexOf("/sdcard"), String#length())

于 2012-04-23T09:04:09.987 回答
0

您可以使用String.lastIndexOf查找“/sdcard”的最后一次出现,然后使用 index+offset 中的常用子字符串读取其余部分...

于 2012-04-23T09:05:12.440 回答
0

你可以使用函数

indexOf(字符串字符串)

其中 str 是 '/sdcard/'

这将为您提供字符串第一次出现的索引。

于 2012-04-23T09:05:29.410 回答