我想让文件从外部取消删除,并希望使用java从程序对该文件进行读/写操作。
S0,我使用java使用以下代码创建了不可删除的文件:
Process pcs = Runtime.getRuntime().exec(
"cmd /c start cacls E:\\PJ\\testing2.txt /e /d %username%");
这是成功的。但是,我不能再对该文件进行读写操作了。 有人帮我做这个!或者另一种方法。
答案 0 :(得分:1)
虽然我不熟悉cacls,以及它究竟做了什么,但是简要地看一下文档说你拒绝为执行命令的用户访问文件,那么你希望同一个用户访问文件。我建议使用/ p开关为当前用户提供读取和写入文件所需的权限,然后在代码中执行您需要对文件执行的操作,然后使用cacls / d撤消当前用户的权限用户再次。尝试做这样的事情:
Process pcs = Runtime.getRuntime().exec(
"cmd /c start cacls E:\\PJ\\testing2.txt /e /p %username% : f");
//Logic that manipulates the file here
Process pcs = Runtime.getRuntime().exec(
"cmd /c start cacls E:\\PJ\\testing2.txt /e /d %username%");
正如一张纸条,特别怀疑那个" :f"部分,我再说一遍,我不熟悉cacls,但我确实读过documentation
编辑 - 对我来说,这个逻辑只会撤销当前用户的权限,因此该文件不会被取消删除'。可以使用其他用户帐户删除该文件(例如管理员)。