#c# #file
#c# #файл
Вопрос:
Мне нужно отслеживать местоположение некоторых файлов, начальные полные пути к которым мне известны. Ситуация выглядит следующим образом: у меня есть файл в path C:Tempfirst.txt через некоторое время это first.txt файл изменяет местоположение, например, на C:Temptwo папка
мне нужно автоматически узнать это второе местоположение при изменении местоположения, есть ли способ сделать это на C # спасибо.
Комментарии:
1. Как вы ожидаете, что пользователь отправит файл? Что означает «отправить»?
2. Это возможно не для всех способов взаимодействия пользователя с файлами.
3. например, у пользователя есть файл в C:\Temp\A.txt затем отправляет файл в C:\Temptwo \ программа каталога будет инициализирована на клиентском компьютере как служба, когда произойдет эта операция, эта служба должна знать новое местоположение для файла, который вы можете считать не клиентом, а моим собственным компьютером, тот же принцип
4. Отправить по электронной почте или как? Существует так много способов получить файл в это местоположение…
5. Похоже, вы вообще не поняли мой вопрос, я собираюсь отредактировать свой вопрос с подробностями, поэтому, пожалуйста, прочитайте еще раз.
Ответ №1:
Это зависит от того, откуда и куда перемещаются файлы. Если вы переходите от C:\MyProgramTempATemp.txt
к C:\MyProgramTempBTemp.txt
, то вы можете просто использовать инструменты каталогов. Directory.GetFiles
отсканирует для вас каталог и вернет массив строк, содержащих имена этих файлов. Если вам известно имя файла, который вы ищете, или вы используете уникальное расширение файла, вы можете выполнять поиск по найденным файлам, пока не найдете искомый файл. Вы также можете вызвать Directory.GetDirectories
рекурсивный вызов для просмотра подкаталогов, если у вас много папок, в которых может скрываться этот файл.
Хотя технически это может работать на диске C, я бы посоветовал тщательно рассмотреть ваш вариант использования, прежде чем пытаться заново изобрести Windows Search.
Комментарии:
1. Как я могу быть уверен, что Temp.txt является ли Temp.txt из TempA, а не из другого текстового файла с именем Temp?
2. Вы могли бы использовать FileInfo в качестве точки сравнения. Большая часть метаданных останется прежней, даже если файл будет перемещен или переименован.
3. Другим вариантом может быть просмотр Git. Это открытый исходный код, поэтому вы можете увидеть, как они решают эту проблему. Если вы создаете файл, фиксируете файл, затем переименовываете или перемещаете его и изменяете его содержимое, Git сравнит удаленный файл с недавно добавленным файлом и попытается определить, что произошло. Я думаю, что они просматривают содержимое файла, чтобы определить, является ли это тем же файлом, что и раньше. Если вы хотите получить лучший ответ, я бы предложил добавить к вашему вопросу деталь о том, что вы создаете утилиту резервного копирования. Такого рода детали могут дать вам гораздо более полезный ответ.
4. Спасибо за ваш ответ, я посмотрю более подробное спасибо.