猿问

求问在linux环境下,Java生成文件并赋予权限的问题!

try {
//step1.1生成文件确认路径
dir = new File(ConstantsUtil.quotes_path);
if (!dir.exists())
dir.mkdirs();
//step1.2确认生成文件
_fPath =new File(dataFilePath);
if(!_fPath.exists())
_fPath.createNewFile();

_fPath.setReadable(true, false);
_fPath.setWritable(true, false);
Runtime.getRuntime().exec(new String[]{ "chmod -R 777 " , dataFilePath});

//step1.3 写入数据
fos=new FileOutputStream(_fPath);
osw=new OutputStreamWriter(fos,"UTF-8");
osw.write("//staticDate="+ DateUtil.getToday() +" \n");
osw.write("[");
。。。

这是生成文件的代码片段,window下没问题 到了linux下
生成的文件

该写的都写了 怎么linux下的文件还是没有权限?

泛舟湖上清波郎朗
浏览 381回答 3
3回答

元芳怎么了

java 处理一些通用的权限1、在java中,文件的权限对于不同的操作系统有不同的权限。 java 处理一些通用的权限。2、检查文件是否允许:file.canExecute(); – return true, file is executable; false is not.file.canWrite(); – return true, file is writable; false is not.file.canRead(); – return true, file is readable; false is not.3、设置文件权限:file.setExecutable(boolean); – true, allow execute operations; false to disallow it.file.setReadable(boolean); – true, allow read operations; false to disallow it.file.setWritable(boolean); – true, allow write operations; false to disallow it.4、在*nix系统中,你可能需要配置更加明确的文件权限,如设置某个文件的权限为777.但是,java IO类没有相关方法。Runtime.getRuntime()。exec("chmod 777 file");

守候你守候我

你要这样写Runtime.getRuntime().exec(new StringBuilder().append("chmod -R 777 ").append(dataFilePath).toString());我测试过了,可以的

蓝山帝景

chmod -R 777 文件名 这个命令错了吧?应该直接 chmod 777 文件名
随时随地看视频慕课网APP
我要回答