Я планирую один маленький проект просто для удовольствия, поэтому я не знаю, буду ли я использовать C++ или JAVA. Поэтому я спрашиваю информацию для обоих этих языков.Как читать определенный файл, если он был перемещен
Теперь я опишу ситуацию, что возможно. Допустим, у меня есть файл C:\Users\T3\My Documents\Downloads\My file.txt
. Выполнение потока программы Я сохраняю этот каталог и использую его для получения содержимого этого файла. Но пользователь может переместить этот файл в другой каталог, пусть это будет C:\Users\T3\My Documents\Files\My file.txt
. Теперь, если я использую предыдущий каталог, я не дойду до этого файла. Но поскольку я знаю, что файл остается в одном месте на диске, позвоните ему 0x1234567890
. Перемещение файла просто изменяет некоторые данные в файловой системе NFTF/ext4/... или некоторые.
Там будет один или два проблемных ситуаций:
- Если файл был перемещен на другой диск. Его невозможно достичь.
- Если файл был перемещен на другой раздел того же диска. Не уверен, что в этом можно достичь этого, но может быть.
Мой вопрос: как получить этот адрес на диске (я назвал его 0x1234567890
) и как читать данные из файла, зная этот адрес.
Файл с открытым файлом можно открыть только с использованием стандартного API файловой системы. Инструменты восстановления работают на более низком уровне. – user2246674
Можете ли вы заблокировать файл, пока используете его, пока не закончите? – Prix
@Prix Я не могу заблокировать файл, потому что пользователь может изменить каталог файлов не в потоке программы. – ST3