mkdirs似乎无法在onCreate of Activity中使用sdcard

时间:2011-08-25 07:08:57

标签: android android-sdcard oncreate

我正在使用一种方法在活动的onCreate中使用mkdirs创建目录结构。虽然它返回true并且所有的indiactions都应该工作,但仍然没有在SD卡上创建(或者可能不可见)目录。可能是什么问题?

更新: 1.我给了android.permission.WRITE_EXTERNAL_STORAGE 2.如果从onCreate之外的任何其他地方调用,该方法工作正常,即创建目录结构。

public static void createNoMediaFile() {
    Log.v("myreader",">>>>>>>>>>>>>>> Entered createNoMediaFile");
    File papermag=new File(DigitalEditionConstant.PAPERMAG_PATH);
    boolean isdircreated=papermag.mkdirs();
    Log.v("myreader",">>>>>>>>>>>>>>>>Directory setup: "+isdircreated);
    File noMediaFile=new File(DigitalEditionConstant.DIR_PATH+".nomedia");
    if(!noMediaFile.exists()){
        try {
            noMediaFile.createNewFile();
            Log.v("myreader",">>>>>>>>>>>>>>>>>>> Created File: "+noMediaFile.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

目录路径等都已经过检查,确定无误。从我项目中的活动的onCreate调用此方法

4 个答案:

答案 0 :(得分:0)

您是否在清单文件中添加了WRITE_EXTERNAL_STORAGE的权限?见here

答案 1 :(得分:0)

这里是简单的代码

File wallpaperDirectory = new File(Environment.getExternalStorageDirectory().toString()+"/FolderName");
wallpaperDirectory.mkdirs();

在您的清单中添加此权限...

WRITE_EXTERNAL_STORAGE

的许可

答案 2 :(得分:0)

dir的名字是以句点开头的吗? DDMS和大多数文件管理器应用程序都不会显示那些dirs ..但它们就在那里。

您是否添加了清单权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

将设备安装为USB将阻止从代码访问SD。

答案 3 :(得分:0)

使用“adb push”命令检查您是否可以将目录复制到SD卡(以确定SD卡没有问题)