想要创建一个文件,而是创建一个目录!

时间:2011-04-12 00:33:33

标签: android file-io

我正在使用此代码在sdcard的根目录中创建一个文件,但是,我创建了一个目录,而不是“fileDir + fileName”!

File file = new File(sdCard.getAbsolutePath(), fileDir+fileName);
    if (!file.mkdirs()) {

        Log.d("ERROR", "Create dir in sdcard failed");

        return;
    }
        OutputStream out = new FileOutputStream(file);
..............................

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

file.mkdirs()创建目录而不是文件[Ref:http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html#mkdir()。这是创建目录的代码。你应该使用这样的代码。

 String destination = currentdir + "test.txt"; 
        File fileCon = new File(destination); 
        if( ! fileCon.exists() ){ 
                fileCon.createNewFile(); 
            } 

或者试试这个,

     String destination = currentdir + "test.txt"; 


// Open output stream
            FileOutputStream fOut = new FileOutputStream(destination);

            fOut.write("Test".getBytes());

            // Close output stream
            fOut.flush();
            fOut.close();

答案 1 :(得分:1)

file.mkdirs()正在if子句中生成目录结构。您可以测试是否能够通过file.canWrite()编写,我想。

文档为here

既然你说它正在生成目录,那么它应该返回true,但是这里没有显示重要的部分:)

答案 2 :(得分:0)

如果你期望file.mkdirs()为文件创建目录,那么你需要稍微调整一下到file.getParentFile()。mkdirs()

当然,这应该包含在try / catch子句中,以防getParentFile()返回null

希望这有帮助,

Phil Lello