1
File file1 = new File(file.getAbsoluteFile() + "/example/directory/example.png");
file1.mkdirs();
file1.setWritable(true);
file1.createNewFile();
try {
    FileInputStream is = new FileInputStream(exampleInputDirectory);
    FileOutputStream os = new FileOutputStream(file1);
    FileChannel srcChannel = is.getChannel();
    FileChannel dstChannel = os.getChannel();
    dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
    is.close();
    os.close();
} catch (IOException e) {
    e.printStackTrace();
}

这是我将图像文件复制到新目录树的设置。但是,当执行此代码时,我得到以下信息:

java.io.FileNotFoundException: *points to output directory* (Access is denied)

我是否进行了file1错误的创作?

4

2 回答 2

3

这里的问题是因为使用

file1.mkdirs();

file1.createNewFile();

一起。

由于file1通过调用“file1.mkdirs()”将对象创建为目录后,该对象已被赋予“目录”属性,但随后您再次使用相同的对象创建“文件”,这意味着 file1 对象的属性从目录到文件,这是不允许的。这就是为什么它给你FileNotFound

于 2013-07-21T20:23:18.163 回答
0

您创建的 file1 似乎达到了标准,也许您的输入目录不存在?确保所有大写字母等都是正确的,并且您的目录参考中没有拼写错误。还要确保用户是否有权将文件复制到目录,如果没有,您可以在 linux 中以 root 身份运行,在 windows 中以管理员身份运行。

于 2013-07-21T20:20:54.887 回答