我正在使用此代码在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);
..............................
感谢您的帮助。
答案 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