Android mkdirs()返回false

时间:2011-08-01 23:13:28

标签: android

我有一个Android mkdirs()返回false。我读到了你对类似问题的另一个回答。你提到了一些关于Environment.getExternal的东西...无论如何我在Droid X上运行Android 2.2。安装了SD卡,并且两个返回的值都是可读和可写的返回true。这是我的代码......

public void writeToExternalStoragePublic(String filename, byte[] content) {

    // API Level 7 or lower, use getExternalStorageDirectory() 
    //  to open a File that represents the root of the external 
    // storage, but writing to root is not recommended, and instead 
    // application should write to application-specific directory, as shown below.

    String packageName = this.getPackageName();
    Toast.makeText(this, packageName, 1000).show();
    String path = "/Android/data/";// + packageName + "/files/";

    if (isExternalStorageAvailable() && 
       !isExternalStorageReadOnly()) {
        try {
            File file = new File(path, filename);
            file.mkdirs();
            file.mkd
            Toast.makeText(this, "Made Dirs = " + file.mkdirs(), 1000).show();
            Toast.makeText(this, "Made Dir = " + file.mkdir(), 1000).show();

            FileOutputStream fos = new FileOutputStream(file);
            fos.write(content);
            fos.close();
            Toast.makeText(this, "success", 1000).show();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            Toast.makeText(this, "fnf", 1000).show();
        } catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(this, "io", 1000).show();
        } catch (SecurityException e) {
            Toast.makeText(this, "security", 1000).show();
        }
    }
}

谢谢。如果你知道任何方式我可以得到它mkdirs我会很感激。谢谢。

这段代码实际上是来自其他人的一个例子,我正在尝试让它发挥作用。

http://www.ibm.com/developerworks/xml/library/x-androidstorage/index.html

d-RAN

1 个答案:

答案 0 :(得分:2)

File.mkdirs()只会返回true一次:实际上必须创建目录。来自文档:

  如果已创建必要的目录,则

返回true;如果目标目录已存在或无法创建其中一个目录,则返回false。

因此,除非您删除目录,否则它将每隔一段时间返回false()。如果您想知道该目录是否存在,请使用File.isDirectory()

FWIW,我没有DroidX所以我不能说你正在使用的路径,但是这条路径在我拥有的设备上不起作用。我还建议检查路径(使用ADB shell)以确保您尝试创建的路径是有效路径。