真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java文件、文件夾權(quán)限如何修改

這篇文章主要為大家展示了“Java文件、文件夾權(quán)限如何修改”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Java文件、文件夾權(quán)限如何修改”這篇文章吧。

成都創(chuàng)新互聯(lián)公司始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達10多年累計超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)營銷解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:成都PVC花箱等企業(yè),備受客戶贊揚。

使用File類

這個方式是以前最常見的方式,但是這個方式有點缺點在LINUX或者UNIX系統(tǒng)下,需要顯示的指定權(quán)限為440,770等就顯得不是那么好用了。

File dirFile = new File(dirPath);dirFile.setReadable(true, false);dirFile.setExecutable(true, false);dirFile.setWritable(true, false);

因此我們通常會采用一些workaround的方式修改文件夾權(quán)限,必須我需要在LINUX上設(shè)置權(quán)限為770

Runtime runtime = getRuntime();String command = "chmod 770 " + dirPath;try {  Process process = runtime.exec(command);  process.waitFor();  int existValue = process.exitValue();  if(existValue != 0){    logger.log(Level.SEVERE, "Change file permission failed.");    }   } catch (Exception e) {    logger.log(Level.SEVERE, "Command execute failed.", e);   }

這種方式會有一個問題,當(dāng)dirPath中包含空格或者分號的時候,不僅僅對功能有影響,對安全也是有隱患的。

情況1: dirPath = /home/a aa.txt

在LINUX系統(tǒng)中執(zhí)行的命令是 chmod 770 /home/a aa.txt , 系統(tǒng)會認(rèn)為修改/home/a 和aa.txt 的文件權(quán)限為770,修改文件權(quán)限失敗

情況2: 當(dāng)dirPath = /home/aaa.txt;rm test.txt

這時在LINUX系統(tǒng)中會執(zhí)行2條指令:

chmod 770 /home/omc/aaa.txtrm test.txt

這時就會出現(xiàn)安全隱患。

NIO方式

private void changeFolderPermission(File dirFile) throws IOException {  Set perms = new HashSet();  perms.add(PosixFilePermission.OWNER_READ);  perms.add(PosixFilePermission.OWNER_WRITE);  perms.add(PosixFilePermission.OWNER_EXECUTE);  perms.add(PosixFilePermission.GROUP_READ);  perms.add(PosixFilePermission.GROUP_WRITE);  perms.add(PosixFilePermission.GROUP_EXECUTE);  try {    Path path = Paths.get(dirFile.getAbsolutePath());    Files.setPosixFilePermissions(path, perms);  } catch (Exception e) {    logger.log(Level.SEVERE, "Change folder " + dirFile.getAbsolutePath() + " permission failed.", e);    }  }

從API 查詢知道,NIO的這種方式原生支持LINUX和UNIX低層系統(tǒng),但測試發(fā)現(xiàn)在Windows系統(tǒng)下面不區(qū)分文件所有者和其它似乎沒有效果,這個和實用File是一致的。從底層代碼發(fā)現(xiàn),還是使用的File類

另外可能會拋出UnsupportedOperationException IOException SecurityException

以上是“Java文件、文件夾權(quán)限如何修改”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁名稱:Java文件、文件夾權(quán)限如何修改
標(biāo)題鏈接:http://weahome.cn/article/jpeihh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部