【问题标题】:How to get External and Internal storage directory path如何获取外部和内部存储目录路径
【发布时间】:2021-10-08 09:01:56
【问题描述】:

我需要获取外部和内部存储目录路径来查找它的大小,但我无法获取路径。在android中我们有

android.os.Enviroment.getExternalStorageDirectory()

【问题讨论】:

    标签: huawei-developers harmonyos


    【解决方案1】:

    来自HarmonyOS官方文档-Internal storageExternal storage

    您可以在您的项目中创建一个utils类,并使用以下函数获取内部和外部存储路径:

    /**
     * Returns the absolute path to the directory of the device's internal storage
     *
     * @param context
     * @return
     */
    public static File getInternalStorage(Context context) {
        return context.getFilesDir(); //Can be called directly too
    }
    
    
    /**
     * Returns the absolute path to the directory of the device's primary shared/external storage
     *
     * @param context
     * @return
     */
    public static File getExternalStorage(Context context) {
        File externalFilesDirPath = context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS);
        String externalStoragePath = "";
        int subPathIndex = externalFilesDirPath.getAbsolutePath().indexOf("/emulated/0/");
        if (subPathIndex > 0) {
            subPathIndex += "/emulated/0/".length();
        }
        if (subPathIndex >= 0 && externalFilesDirPath.getAbsolutePath().contains("/storage/")) {
            externalStoragePath = externalFilesDirPath.getAbsolutePath().substring(0, subPathIndex);
        }
        if (externalStoragePath.length() > 0) {
            externalFilesDirPath = new File(externalStoragePath);
        }
        return externalFilesDirPath;
    }
    

    获取File对象后,可以调用以下函数获取存储信息-

    • getTotalSpace():返回由此命名的分区大小 抽象路径名。
    • getUsableSpace​():返回此抽象路径名命名的分区上此虚拟机可用的字节数。
    • getFreeSpace():返回此抽象路径名命名的分区中未分配的字节数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 2015-12-18
      • 2014-11-12
      • 1970-01-01
      相关资源
      最近更新 更多