gpt4 book ai didi

java - 如果移动了特定文件,如何读取它

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:03 25 4
gpt4 key购买 nike

我正在计划一个小项目,只是为了好玩,所以我还不知道我是否会使用 C++ 或 JAVA。所以我要询问这两种语言的信息。

现在我将描述情况,可能发生的情况。假设我有文件 C:\Users\T3\My Documents\Downloads\My file.txt。做程序流程我保存这个目录并用它来获取该文件内容。但是用户可以将该文件移动到其他目录,让它成为 C:\Users\T3\My Documents\Files\My file.txt。现在,如果我使用以前的目录,我将无法访问该文件。但据我所知,文件位于磁盘中的同一位置,我们称它为 0x1234567890。移动文件只会更改文件系统 NFTF/ext4/... 或一些中的一些数据。

会有一两种有问题的情况:

  1. 如果文件被移动到其他磁盘。这是不可能达到的。
  2. 如果文件被移动到同一磁盘的其他分区。不确定这是否可能达到它,但它可能是。

我的问题是如何在磁盘上获取该地址(我称之为 0x1234567890)以及如何从知道该地址的文件中读取数据。

最佳答案

我从java的角度讲。Java 自己进行内存管理,从不公开它们,因此您不会获得 api 来获取文件的内存地址。

虽然有一种方法可以在特定的内存地址写入,然后使用 sun.misc.Unsafe 类从该地址访问数据。在这篇文章中有解释:http://robaustin.wikidot.com/how-to-write-to-direct-memory-locations-in-java

总而言之,您从内存地址获取数据的方法会导致麻烦。你应该改变你的逻辑并寻找锁定文件或将文件路径放在某个集中位置,该位置也将存储修改后的路径。

关于java - 如果移动了特定文件,如何读取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17387830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com