使用java创建不可删除的文件并在其上读/写

时间:2014-04-10 03:13:30

标签: java

我想让文件从外部取消删除,并希望使用java从程序对该文件进行读/写操作。

S0,我使用java使用以下代码创建了不可删除的文件:

    Process pcs = Runtime.getRuntime().exec(
    "cmd /c start cacls E:\\PJ\\testing2.txt /e /d %username%");

这是成功的。但是,我不能再对该文件进行读写操作了。 有人帮我做这个!或者另一种方法。

1 个答案:

答案 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

编辑 - 对我来说,这个逻辑只会撤销当前用户的权限,因此该文件不会被取消删除'。可以使用其他用户帐户删除该文件(例如管理员)。