请记住,某些 Android 设备的 SD 卡路径不同,有些设备没有可移动 SD 卡。
您不必直接设置路径!
File myDir = new File("/mnt/extSdCard/test");
myDir.mkdirs();
您可以先检查您的设备是否安装了可移动SD卡:
public static boolean isSDCardAvailable(Context context) {
File[] storages = ContextCompat.getExternalFilesDirs(context, null);
if (storages.length > 1 && storages[0] != null && storages[1] != null)
return true;
else
return false;
}
为什么外部目录 > 1,因为大多数 Android 设备都将外部存储作为主目录,将可移动 SD 卡作为第二目录:
但您可以使用一种方法来获取可移动 microSD 卡的真实路径:
public static String getRemovableSDCardPath(Context context) {
File[] storages = ContextCompat.getExternalFilesDirs(context, null);
if (storages.length > 1 && storages[0] != null && storages[1] != null)
return storages[1].toString();
else
return "";
}
然后就这样做:
File myDir = new File(getRemovableSDCardPath(getApplicationContext()),"test");
if(myDir.mkdirs()){
Log.i(TAG, "Directory was succesfully create!");
}else{
Log.i(TAG, "Error creating directory!");
}
例如使用该方法:
String pathSDCard = getRemovableSDCardPath(getApplicationContext());
因此,我得到了可移动 SD 卡的路径(如果我没有可移动 SD 卡,我的路径将为“”,因此您可以实施验证以避免创建文件夹):
/storage/extSdCard/Android/data/com.jorgesys.myapplication/files
现在在里面创建一个新文件夹:
File myDir = new File(getRemovableSDCardPath(getApplicationContext()),"test");
if(myDir.mkdirs()){
Log.i(TAG, "Directory was succesfully create!");
}else{
Log.i(TAG, "Error creating directory!");
}
现在我有了目录/test
创建: