如何编写外部SdCard(mnt / external1)

时间:2011-11-04 12:25:44

标签: android

我想写外部SD卡(路径:/ mnt / external1 /)。我可以阅读那条路径,但是当我在它上面创建一个新文件夹时,它不会创建。我已经在manifestast.xml中声明了读写权限。

当我写代码f.mkdir();它返回false; 当我为该路径创建一个outputStream obj并尝试通过异常权限来写一些内容时。

注意:我的目标是在外部sdcrad上写一些东西,路径是/ mnt / external1。

请给我一些解决方案。

我的代码是

public int createFolder(String FolderName)
{
    File f = new File("/mnt/external1"+FolderName);
    if(!f.exists())
    {   
        if(f.mkdirs())
        {
            files= getFiles(path);
            imageadapter.notifyDataSetChanged();
            return 1;
        }
     }
}

4 个答案:

答案 0 :(得分:2)

 public void createFolder(String FolderName)
{
    File f = new File(new File("/mnt/external1"), FolderName);
    if(!f.exists())
    {   
        f.mkdirs();
     }
}

这应该可行,但对于motorola xoom来说,它是硬编码的,经过测试。

答案 1 :(得分:1)

如果有效,请使用以下代码

public int createFolder(String FolderName)
{
    File f = new File(Enviornment.getExternalStorageDirectory(), FolderName);
    if(!f.exists())
    {   
        if(f.mkdirs())
        {
            files= getFiles(path);
            imageadapter.notifyDataSetChanged();
            return 1;
        }
     }
}

答案 2 :(得分:1)

试试这种方式。这个例子不是你的完美代码,但你可以得到一些想法/帮助

String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)){
   String path=Environment.getExternalStorageDirectory()+"myfolder";
   boolean exists = (new File(path)).exists();
   if(!exists) new File(path).mkdirs();
}

答案 3 :(得分:1)

从3.2开始,这似乎是Xoom平板电脑的问题(至少)。在Android错误列表中引用1850118559。您可能必须完全依赖于getExternalStorageDirectory()为您返回的路径。