如何获取外部和内部存储目录路径
How to get External and Internal storage directory path
我需要获取外部和内部存储目录路径才能找到它的大小,但我无法获取路径。在 android 中我们有
android.os.Enviroment.getExternalStorageDirectory()
来自鸿蒙官方文档-Internal storage and External storage
您可以在您的项目中创建一个utils class,并使用以下函数获取内部和外部存储路径:
/**
* 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()
:Returns这个命名的分区的大小
抽象路径名。
getUsableSpace()
: Returns 在此抽象路径名命名的分区上此虚拟机可用的字节数。
getFreeSpace()
: Returns 此抽象路径名命名的分区中未分配的字节数。
我需要获取外部和内部存储目录路径才能找到它的大小,但我无法获取路径。在 android 中我们有
android.os.Enviroment.getExternalStorageDirectory()
来自鸿蒙官方文档-Internal storage and External storage
您可以在您的项目中创建一个utils class,并使用以下函数获取内部和外部存储路径:
/**
* 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()
:Returns这个命名的分区的大小 抽象路径名。getUsableSpace()
: Returns 在此抽象路径名命名的分区上此虚拟机可用的字节数。getFreeSpace()
: Returns 此抽象路径名命名的分区中未分配的字节数。