文件显示为目录,而不是文件?

时间:2011-11-11 10:37:22

标签: java android

我正在制作一个Android应用程序,在按下按钮时会创建一个新文件。我正在使用以下代码:

File file = new File(Environment.getExternalStorageDirectory()
         +File.separator
         +"myDirectory" //folder name
         +File.separator
         +"myFile.png"); //file name
file.mkdirs();

但是,myFile.png实际上显示为目录而不是.png文件。

3 个答案:

答案 0 :(得分:5)

由于file.mkdirs(); mkdirs() - 用于根据文件对象的参数创建目录,如果要创建文件进行IO操作以便在文件中写入,< / p>

在你的情况下:制作一个目录,

File file = new File(Environment.getExternalStorageDirectory()
     +File.separator
     +"myDirectory" //folder name
     +File.separator
     +"myFile.png"); //file name
   file.getParentFile().mkdirs();

这会在外部存储空间中创建一个myDirectory文件夹。

答案 1 :(得分:2)

根据its documentation File.mkdirs()“创建由此文件的尾随文件名命名的目录”。

换句话说:您明确地创建一个名为myFile.png的目录。如果那个不是你想要什么,那么可能想要做file.getParentFile().mkdirs()

答案 2 :(得分:1)

file.mkdirs()

上面的代码将创建新目录。

创建文件

try{
    File file = new File(Environment.getExternalStorageDirectory()
         +File.separator
         +"myDirectory" //folder name
         +File.separator
         +"myFile.png"); //file name

    myFile.createNewFile();
    OutputStream filoutputStream = new FileOutputStream(myFile);
    filoutputStream.write(b);
    filoutputStream.flush();
    filoutputStream.close();
} catch (IOException e) {
   // handler exception
}