V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mengrusheng
V2EX  ›  Android

android 下如何判断两个路径实际上是同一个位置的情况

  •  
  •   mengrusheng · 2015-04-18 21:04:37 +08:00 · 9695 次点击
    这是一个创建于 3525 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大概和Linux的链接有关,android上会出现两个路径实际上是同一个位置的情况,比如部分机型的sd卡路径有 /storage/sdcard0 /storage/emulated/0 两种结果,但是两者指向的是一个目录,如何在代码里区分这种情况呢?

    12 条回复    2015-04-20 14:00:38 +08:00
    uglyer
        1
    uglyer  
       2015-04-18 22:58:17 +08:00   ❤️ 1
    写个文件进去看下另一个路径是不是也能读到这个文件 (逃
    laotaitai
        2
    laotaitai  
       2015-04-18 23:43:17 +08:00
    @uglyer 这个方法简单直白使用, 文件名就是随机名.
    acess
        3
    acess  
       2015-04-19 00:13:02 +08:00
    linux有个命令realpath,可以对付软链接,但对付不了bind mount
    android不太清楚……
    churchmice
        4
    churchmice  
       2015-04-19 00:16:47 +08:00   ❤️ 2
    用 ls -i 比较inode
    aaronmix
        5
    aaronmix  
       2015-04-19 00:48:03 +08:00
    用Environment.getExternalStorageDirectory().getPath()?
    ilotuo
        6
    ilotuo  
       2015-04-19 10:55:44 +08:00 via Android   ❤️ 1
    用命令还得两次判断提取返回
    前面说的创建一个文件判断 虽然很粗暴但是简单呐
    Krime
        7
    Krime  
       2015-04-20 08:53:39 +08:00
    @ilotuo 这样文件判断的话,如果知道两个目录,只需要验证还好,如果只知道其中一个想找另一个就不太靠谱了
    mengrusheng
        8
    mengrusheng  
    OP
       2015-04-20 13:56:14 +08:00
    @uglyer @laotaitai 简单粗暴的方法确实有效 3q
    mengrusheng
        9
    mengrusheng  
    OP
       2015-04-20 13:58:00 +08:00
    @acess 这命令不好用 /system/bin/sh: realpath: syntax error
    mengrusheng
        10
    mengrusheng  
    OP
       2015-04-20 13:59:19 +08:00
    @churchmice 应该是个好办法 就是略复杂 谢谢
    mengrusheng
        11
    mengrusheng  
    OP
       2015-04-20 13:59:56 +08:00
    @aaronmix 那个一般返回的是内置sd卡路径
    mengrusheng
        12
    mengrusheng  
    OP
       2015-04-20 14:00:38 +08:00
    @Krime 我的场景就是这样 刚刚好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5522 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 02:00 · PVG 10:00 · LAX 18:00 · JFK 21:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.