首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文件写入默认临时目录时权限被拒绝

问将文件写入默认临时目录时权限被拒绝
EN

Stack Overflow用户
提问于 2013-02-13 09:34:13
回答 2查看 13K关注 0票数 6

我的程序执行一些相当密集的操作,所以我使用临时文件来加快速度。我使用以下Java代码:

代码语言:javascript
复制
File scratchFile = new File(System.getProperty("java.io.tmpdir") + "WCCTempFile.tmp");
if (!scratchFile.exists())
    scratchFile.createNewFile();

这段代码在Mac和Windows上运行得很好。它在Java临时目录中创建一个临时文件,该目录由操作系统决定。

但是,当我在Linux (特别是Linux Mint)上尝试这个程序时,我在"scratchFile.createNewFile()“行得到以下错误

代码语言:javascript
复制
java.io.IOException: Permission Denied

我真的被这个错误搞糊涂了,因为我认为通过System.getProperty("java.io.tempdir")方法收集的临时目录应该是用户可以写入的目录(而且它在其他操作系统上)。在Linux上不是这样吗?有没有办法授予对临时目录的访问权限?有没有我应该使用的其他目录?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-13 09:39:50

在Linux上,java.io.tmpdir通常设置为/tmp (注意缺少的尾部/)。使用the two-parameter File constructor要干净得多,而不是摆弄额外的嵌入斜杠

代码语言:javascript
复制
File scratchFile = new File(System.getProperty("java.io.tmpdir"),"WCCTempFile.tmp");

这样你就不必担心尾部的斜杠了。

票数 11
EN

Stack Overflow用户

发布于 2013-02-13 09:35:35

如果您有权限,可以使用chmod更改目录的权限。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14845045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档