Android mkdir无法创建文件夹

问题描述 投票:24回答:3

今晚我目前在做一些我认为很简单的事情时遇到问题...在/ 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卡或正在使用手机(而不是仿真器)进行开发等操作。说到哪个,debuggabletrue可能会阻止它创建文件夹吗?

谢谢!

android mkdir
3个回答
42
投票

/mnt/sdcard/tallgrass/目录是否存在? (我猜不是,但您永远不会知道。)

File.mkdirs()方法将创建所有需要的目录; File.mkdirs()将仅在路径名中创建last目录。


0
投票

检查您将权限必须以这种方式放到哪里:

mkdir()

0
投票

尝试使用其他设备。我的仿真器设备存在问题,但是当我连接Oneplus 5T时,它创建了一个文件夹。 (我的Oneplus没有外部MicroSD),但同时,我的模拟器(像素3)根本没有创建文件夹。至少这些权限都很好。

© www.soinside.com 2019 - 2024. All rights reserved.