我正在用java编写游戏,我想保存我的游戏。我将把它保存为一个zip文件中的一组XML文档。我想知道的是,如果他们是透明地这样做的方式,那么用户就无法编辑这些文件或找到它们。我曾想过只是隐藏文件,但这似乎是一种肮脏和丑陋的方式。我最不喜欢的隐藏文件是它们在系统之间似乎不兼容。如果他们无论如何都要将文件保存到jar中并从中读取它们也同样可以接受。在java中,似乎没有一种方法可以隐藏文件。任何帮助将不胜感激。
答案 0 :(得分:0)
我想知道的是,他们是否可以透明地执行此操作,以便用户无法编辑这些文件或找到它们。
最终,没有。
您在本地计算机上存储状态的任何操作最终都可以进行逆向工程,并且特权用户可以检索该状态。
但是你可以采取各种措施让人们难以“作弊”。例如,您可以加密文件,或生成种子散列以检测“修补”。
在Java 7上隐藏文件很简单:
Path path = FileSystems.getDefault().getPath("directory", "hidden.txt");
Boolean hidden = path.getAttribute("dos:hidden", LinkOption.NOFOLLOW_LINKS);
if (hidden != null && !hidden) {
path.setAttribute("dos:hidden", Boolean.TRUE, LinkOption.NOFOLLOW_LINKS);
}
(复制自:http://javarevisited.blogspot.com/2012/01/how-to-hide-file-java-program-example.html)
在早期版本的Java上,您需要调用外部Windows应用程序或调用本机库来执行此操作。但请注意: