首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在可移动SD卡上存储文件

在可移动SD卡上存储文件
EN

Stack Overflow用户
提问于 2013-03-08 13:27:45
回答 1查看 456关注 0票数 2

我在市场上有两个Android应用程序,可以读取/写入SD卡。其中之一将备份文件存储到SD卡。问题是,对于较新的智能手机,有两个SD卡;嵌入式SD卡位于/mnt/sdcard,而可移动SD卡没有标准化的目录路径。我希望做的是为用户添加一个带有两个选项的单选按钮组:将备份存储在内部SD卡(默认)或存储在可移动SD卡上。难题是获取可移动SD卡的正确路径,并将该路径存储在变量中。

我发现了一个linux命令,似乎可以在所有android设备上工作。"df“命令列出了嵌入式sdcard (/mnt/sdcard)和可移动sdcard的位置。我知道如何使用dataoutputstream类发送命令,但我遇到的问题是从命令的输出中读取数据,并从输出中过滤出我需要的部分。

下面是"df“命令输出的示例:

代码语言:javascript
运行
复制
/ $ df
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                   369128        32    369096   0% /dev
tmpfs                   369128         0    369128   0% /mnt/asec
tmpfs                   369128         0    369128   0% /mnt/obb
/dev/block/mmcblk0p1    516040    476832     39208  92% /system
/dev/block/mmcblk0p7  13813852   2948206  10865646  21% /data
/dev/block/mmcblk0p2    533616      8574    525042   2% /cache
tmpfs                   369128         0    369128   0% /Removable
/dev/fuse             13813852   2948206  10865646  21% /mnt/sdcard
/dev/block/vold/179:9 30306304  12222624  18083680  40% /Removable/MicroSD

上面的输出来自我的ASUS Transformer平板电脑,如您所见,它使用路径/ removable /MicroSD作为可移动SD卡的目录。同样,我需要做的就是在我的代码中获取此输出,过滤掉所有不必要的数据,并将路径存储在一个变量中。

我不是在找人为我写代码,我只是需要找到更好的引用,让我可以抓取输出并对其进行过滤。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2013-04-17 18:49:52

我认为你必须在SD卡或内存中创建自己的文件夹目录。就像我在下面展示的。

代码语言:javascript
运行
复制
if (sdCardDir != null) 
        return (new File(sdCardDir, CALLHISTORY_FILE).exists());

    ArrayList<File> posibleDir = new ArrayList<File>();
    File esd = Environment.getExternalStorageDirectory();
    posibleDir.add(new File(esd, "external_sd"));
    posibleDir.add(esd);
    posibleDir.add(new File("/sdcard"));

    // Use first possible sdcard directory
    for (File dir : posibleDir) {
        if (dir.exists() && dir.isDirectory()) {
            sdCardDir = new File(dir, TBACKUP_DIR);
            if(!sdCardDir.exists())
                sdCardDir.mkdir();
            return true;
        }
    }

    throw new IOException();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15287333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档