为什么我会"Parent directory of file is not writable?"



我已经看了很多帖子,但仍然没有答案。添加WRITE_EXTERNAL_STORAGE后,检查sd卡是否可写并挂载,我仍然得到"文件的父目录不可写"。我正在使用eclipse和模拟器,目标是SdkVersion="7"。

如何写入sd卡?

示例代码如下:

<uses-premission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    
    .
    .
    .
    checkSDStatus();
    .
    .
    .
    File sdCardRoot = Environment.getExternalStorageDirectory();
    // Check state of SD card
    String sdState = Environment.getExternalStorageState();
    Log.d("--- state ---", sdState);
    File dir = new File (sdCardRoot.getAbsolutePath() + "/download");
    dir.mkdirs();
    File file = new File(dir, fileName);
    .
    .
    .
    private void checkSDStatus(){
        boolean mExternalStorageAvailable = false;
        boolean mExternalStorageWriteable = false;
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state)) {
            mExternalStorageAvailable = mExternalStorageWriteable = true;
            Log.d("-- sd card --", "-- card writable --");
        } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
            mExternalStorageAvailable = true;
            mExternalStorageWriteable = false;
            Log.d("-- sd card --", "-- card read only --");
        } else {
            mExternalStorageAvailable = mExternalStorageWriteable = false;
            Log.d("-- sd card --", "-- card unvailable --");
        }
    }

好的,我来替别人回答我的问题。

在多次添加到我的清单文件之后,我没有什么可失去的,所以我复制了它的另一个版本,并将其添加到现有权限以下的清单中。

权限看起来是一样的,但我删除了我的旧权限,使用了我复制进来的新权限。

我重新运行应用程序,它工作!!也许磁盘上有一个错误,或者由于某种原因无法读取清单文件,或者其他什么—至少它现在可以工作了!

如果有人知道为什么,我很想听听这个问题的原因!

最新更新