Android如何在SD卡上创建文件夹?

时间:2016-01-13 15:13:43

标签: android permissions directory android-sdcard

在我的StartActivity上,我想在SD卡上为应用程序创建一个文件夹。现在我首先在manifest.xml中设置权限,如下所示

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

比我在我的StartActivity上的onCreate方法中编写一些代码

//Creat an AppFolder
    String appPathString = Environment.getExternalStorageDirectory().getPath() + "/MyIdea";
    try {
        File appPath = new File(appPathString);
        if (!appPath.exists()) {
            appPath.mkdirs();
            Toast.makeText(getApplicationContext(), "Folder created", Toast.LENGTH_LONG).show();
        }
    } catch (Exception e) {
        Log.e("saveToExternalStorage()", e.getMessage());
    }

现在我在应用程序启动时在我的Nexus 5上运行应用程序并且正在显示toast。但是,如果我继续我的设备,我找不到任何名称,即创建的文件夹。有什么问题?

3 个答案:

答案 0 :(得分:0)

试试这段代码。这个对我有用 。您需要指向存储的AbsolutePath

String state;
state = Environment.getExternalStorageState();
if ((Environment.MEDIA_MOUNTED).equals(state)) {
                File root = Environment.getExternalStorageDirectory();
                File Dir = new File(root.getAbsolutePath() + "/My Ideas");
                if (!Dir.exists()) {
                    Dir.mkdir();

                }

答案 1 :(得分:0)

我只是想知道,(我知道,我们不会写任何东西)但是请尝试调用appPath.flush();和appPath.close();

当我添加WRITE权限时,我还添加了READ,以确保!

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

答案 2 :(得分:0)

经过短暂的搜索,我发现,我需要特殊的使用权限为Android sdk 23.所以我改变了我的机器人

<uses-permission-sdk-23 android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="23" /> 现在它工作正常。谢谢大家的支持!