我正在为 Atlassian Bamboo 创建一个任务插件。在任务执行的某个时刻,我想创建一个临时文件:
File temp = File.createTempFile(fileName.toString(), null, dir);
temp.deleteOnExit();
,其中:
fileName.toString() = e.g. "C:\Atlassian\bamboo-home\xml-data\build-dir\CMPT-CMPTP-JOB1\test.java"
dir = new File("temp");
在本地测试时,一切正常 - 文件已正确创建。但是,在我在服务器上部署插件并尝试执行上述代码后,我遇到了 IOException:
java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(File.java:1879)
可能是什么原因?
其他信息:我很确定 dir.exists()
。
最佳答案
文件名
"C:\Atlassian\bamboo-home\xml-data\build-dir\CMPT-CMPTP-JOB1\test.java"
在 Windows 上有效,但在 Unix 操作系统上无效。您将无法创建这样的(临时)文件,无论是指定为绝对名称/路径或文件,还是仅相对于另一个文件夹。
如果您的操作系统是 Windows,您仍然无法使用完整路径(以 "C:"
等驱动器规范开头)来创建为另一个文件夹的子文件夹。
关于java - 创建临时文件时出现IOException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25308155/