2011-12-22 142 views
2

我有一个非常小的问题。我正在写一个文件到SD卡。我会告诉你两个代码,一个代码工作,其他代码不工作。它看起来是这样的:首先 一个,写入SD卡

new FileOutputStream("/sdcard/HelloWorld.txt") 

这工作得很好,并创建一个SD卡文件HelloWorld.txt。

现在第二个,

new FileOutputStream(android.os.Environment.getExternalStorageDirectory()+java.io.File.separator + "filetest" + java.io.File.separator + "HelloWorld.txt") 

这将引发错误 “/mnt/sdcard/filetest/HelloWorld.txt (No such file or directory)”。 我想知道为什么,因为我的设备上有mnt/sdcard路径,它是否找不到filetest文件夹,如果是的话,是不是应该创建filetest文件夹,如果它没有创建之前。

谢谢。

回答

4

首先如果没有可用做的filetest目录,

File file = new File(android.os.Environment.getExternalStorageDirectory()+java.io.File.separator + "filetest"); 

file.mkdir(); 

然后执行代码......

OR

File f = new File(android.os.Environment.getExternalStorageDirectory()+java.io.File.separator + "filetest" + java.io.File.separator + "HelloWorld.txt"); 

    if (!f.getParentFile().exists()); 
    { 
     f.getParentFile().mkdir(); 
    } 
+0

感谢。是的,它应该是这样的。 – 2011-12-22 12:56:16

2

是....... 。 filetest文件夹不存在,所以你需要手动或编程创建它,并尝试该代码...所以你获得成功。

你也可以创建这样的目录::

File wallpaperDirectory = new File("/sdcard/filetest/"); 
// have the object build the directory structure, if needed. 
wallpaperDirectory.mkdirs(); 
// create a File object for the output file 
File outputFile = new File(wallpaperDirectory, filename); 
// now attach the OutputStream to the file object, instead of a String representation 
FileOutputStream fos = new FileOutputStream(outputFile); 

使用许可:::

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