Android mkdir没有制作文件夹

时间:2011-05-11 02:33:42

标签: android mkdir

今晚我正在做一些我认为很简单的事情......在/ 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可能会阻止它制作文件夹吗?

谢谢!

3 个答案:

答案 0 :(得分:42)

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

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

答案 1 :(得分:0)

检查他们必须以这种方式放置权限的位置:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="edu.una.info.app">
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.CALL_PHONE" />

<application android:allowBackup="true"
    android:label="@string/app_name"
    android:icon="@drawable/ic_launcher"
    android:theme="@style/AppTheme">

    <activity
        android:name="edu.una.info.SplashScreenActivity"

答案 2 :(得分:0)

尝试使用其他设备。我的仿真器设备存在问题,但是当我连接 Oneplus 5T 时,它创建了一个文件夹(我的Oneplus没有外部MicroSD)。

但是同时,我的模拟器( Pixel 3 )根本不创建文件夹。

至少这些权限都很好。