Java在制作新文件夹时,其无法使用

时间:2017-03-12 16:20:29

标签: java

我正在尝试创建一个新文件夹来保存图像。该程序生成一个文件而不是文件夹,并且该文件不可访问(这是有道理的,因为它没有后缀)。

picture of the folder after creation

代码:

public class Main
 {
    public BufferedImage img = null;
    public String outPath;

    public static void main(String[] args)
    {

       System.out.println("enter out put path like c:\\test: ");
        outPath = scan.nextLine();

        makeDir();
        writeFile();

    }

     public void makeDir()
    {

        // Create one directory
        boolean success = (new File(outPath)).mkdir();
        if (success)
        {
            System.out.println("Directory: " + outPath + " created");
        }
    }

    public void writeFile()
    {
        try
        {
            File f = new File(outPath);
            ImageIO.write(img, "jpg", f);
            System.out.println("finished writing: " + outPath);
        }
        catch (IOException e)
        {
            System.out.println(e.getMessage());
        }

    }


}

2 个答案:

答案 0 :(得分:1)

您正在将文件写入与您创建的目录相同的文件名。可以为图像添加文件名,例如

File f = new File(outPath);
File imageFile = new File(f, "image.jpg")
ImageIO.write(img, "jpg", imageFile);

答案 1 :(得分:0)

我可以向您保证,mkdir()mkdirs()工作得非常好,并且该漏洞很可能出现在该计划的流程中。

如果已有目录或文件具有相同路径,则不会创建目录。

您可以使用exists()进行检查,true如果有该路径的文件或目录,则会返回isFile()。如果您想知道路径是文件还是目录,可以使用isDirectory()和{{1}}来确定类型。