通过文件写入文件写入会给出AccessDeniedException异常

问题描述:

我正在创建一个maven插件,我需要在项目目录中写入一个新文件。通过文件写入文件写入会给出AccessDeniedException异常

由于某些原因,当我尝试创建一个新文件时,我得到了AccessDeniedException。

堆栈跟踪:

[ERROR] Failed to execute goal org.ofx:ofx-maven-plugin:1.0-SNAPSHOT:generateScreensEnum (default) on project preloader: Execution default of goal org.ofx:ofx-maven-plugin:1.0-SNAPSHO 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException 

c:\devl\work\preloader> 

这是一个没有现有的文件,所以它不应该是一个锁定的资源情况。 我也尝试写入不同的文件夹(不是项目文件夹),以防万一,看看它是否解决它,它不。

我的代码:

Files.write(enumLocation, lines, Charset.defaultCharset(), StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING); 

任何想法?

+1

显示您写的代码将有所帮助 – 2014-10-18 16:49:24

+0

仍然没有足够的细节。向我们展示所有代码,包括构建要写入文件路径的代码(并告诉我们该代码应该执行的操作以及实际执行的操作)。 – 2014-10-18 17:59:57

+0

就像这样说,写文件的路径是什么都没有关系,我试过“c:\\ temp”,我得到了同样的错误,我没有更多要说明的,我只是想保存一个文件到磁盘上的任何位置。 – 2014-10-18 18:17:56

发现问题,如果文件不存在,需要添加StandardOpenOption.WRITE,选项。

Files.write(enumLocation, lines, Charset.defaultCharset(), StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING);