【问题标题】:Get the directory from a file path in java (android)从java(android)中的文件路径获取目录
【发布时间】:2015-04-20 02:02:03
【问题描述】:

有没有获取文件路径的目录部分的功能?

所以从

String a="/root/sdcard/Pictures/img0001.jpg";

你得到

"/root/sdcard/Pictures"

【问题讨论】:

    标签: java android path directory


    【解决方案1】:

    是的。首先构造一个File代表图片路径:

    File file = new File(a);
    

    如果您从相对路径开始:

    file = new File(file.getAbsolutePath());
    

    那么,get the parent

    String dir = file.getParent();
    

    或者,如果您希望目录作为File 对象,

    File dirAsFile = file.getParentFile();
    

    【讨论】:

    • 如果您使用像File f = new File("file.txt"); 这样的相对路径,请注意f.getParent() 将返回null,而不是父级
    • 如何从文件名中提取到“/root/sdcard/”或“/root/internal/”的路径?
    • @hexafraction,刚刚发布了一个问题stackoverflow.com/questions/38381871/…
    【解决方案2】:

    更好的方法,使用getParent() from File Class..

    String a="/root/sdcard/Pictures/img0001.jpg"; // A valid file path 
    File file = new File(a); 
    String getDirectoryPath = file.getParent(); // Only return path if physical file exist else return null
    

    http://developer.android.com/reference/java/io/File.html#getParent%28%29

    【讨论】:

      【解决方案3】:

      您也可以使用FilenameUtils from Apache。它为示例 C:\dev\project\file.txt 提供了至少以下功能:

      • 前缀 - C:\
      • 路径 - dev\project\
      • 完整路径 - C:\dev\project\
      • 名称 - file.txt
      • 基本名称 - 文件
      • 扩展名 - txt

      【讨论】:

        【解决方案4】:

        我在 4 天后得到了解决方案,请在 Android(Java) 中为 File 类提供路径时注意以下几点:

        1. 内部存储使用路径 String path="/storage/sdcard0/myfile.txt";
        2. path="/storage/sdcard1/myfile.txt";
        3. 在 Manifest 文件中提及权限。

          <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

        4. 首先检查文件长度以进行确认。
        5. 检查 ES 文件资源管理器中关于 sdcard0 和 sdcard1 的路径是否相同......

        例如

        File file=new File(path);
        long=file.length();//in Bytes
        

        【讨论】:

          猜你喜欢
          • 2015-04-26
          • 2015-10-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-17
          • 1970-01-01
          相关资源
          最近更新 更多