Можно ли узнать, откуда файл перемещается (копируется) в другой каталог? - PullRequest
0 голосов
/ 06 октября 2019

В моей программе мне нужно реализовать перехват файлов, когда они перемещаются в контролируемую папку и перенаправляются в другой каталог. Что именно я имею в виду. Например, у нас есть 3 папки «A», «B», «C». И пользователь перемещает файл с «A» на «B» («B» - папка, которую мы отслеживаем), и нам нужно перенаправить этот файл на «C», прежде чем он полностью переместится.

Я нашелрешение в Интернете с использованием FileSystemWatcher, но его событий и свойств недостаточно, с его помощью вы можете понять, что вы создали или переместили (скопировали) файл, но мы никогда не узнаем, откуда он был сделан, и не сможемперенаправлять его до тех пор, пока файл не будет полностью перемещен.

В общем вопрос: можно ли как-то решить эту проблему, и можно ли ее вообще решить?

1 Ответ

0 голосов
/ 06 октября 2019

Сводка комментариев, которые автор вопроса признал ответом.

Используйте папку «C» в качестве временного хранилища. Удалите все права пользователя, кроме «Запись». Теперь пользователи смогут сбросить файлы, но не смогут прочитать, что находится в папке.

Вы можете запускать приложение синхронно или асинхронно. Синхронно позволяет вам захватывать каждый файл по завершении процесса копирования / перемещения, в то время как асинхронно будет запланированной задачей, которая будет искать новые файлы каждые X минут / секунд. Для асинхронного метода убедитесь, что вы пропустили заблокированные файлы и обработали их при следующем запуске.

...