今晚我目前在做一些我认为很简单的事情时遇到问题...在/ mnt / sdcard中创建一个文件夹。
我已设置关注权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
我的Main.java
使用以下文件制作文件夹:
public class Main extends TabActivity {
static int index = 1;
private static final String TAG = "Main";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
File folder = new File(Environment.getExternalStorageDirectory () + "/tallgrass/images");
boolean success = false;
if(!folder.exists()){
success = folder.mkdir();
}
if (!success){
Log.d(TAG,"Folder not created.");
}
else{
Log.d(TAG,"Folder created!");
}
}
我得到了“文件夹创建!”消息在我的日志中,但是当我同时选中/mnt/sdcard
和/sdcard
时,都没有该文件夹。我曾尝试致电:
Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
它返回true。我只是想不通这一点,因为所有迹象都表明它应该起作用。我还尝试了将手机与PC断开连接的情况,以防安装SD卡或正在使用手机(而不是仿真器)进行开发等操作。说到哪个,debuggable
到true
可能会阻止它创建文件夹吗?
谢谢!
/mnt/sdcard/tallgrass/
目录是否存在? (我猜不是,但您永远不会知道。)
File.mkdirs()
方法将创建所有需要的目录; File.mkdirs()
将仅在路径名中创建last目录。
检查您将权限必须以这种方式放到哪里:
mkdir()
尝试使用其他设备。我的仿真器设备存在问题,但是当我连接Oneplus 5T时,它创建了一个文件夹。 (我的Oneplus没有外部MicroSD),但同时,我的模拟器(像素3)根本没有创建文件夹。至少这些权限都很好。