Существует некоторое перекрытие с этим вопрос , который охватывает проблему с другой стороны.
Согласно документам :
Общие операции файловой системы могут поднять более одного события. За например, когда файл перемещается из одного каталог в другой, несколько OnChanged и некоторые OnCreated и Могут возникнуть события OnDeleted. Перемещение файла - сложная операция который состоит из нескольких простых операций, поэтому возникает несколько события.
Так что, если вы пытаетесь быть очень осторожными при обнаружении ходов, и иметь один и тот же путь недостаточно, вам придется использовать какую-то эвристику. Например, создайте «отпечаток пальца», используя имя файла, размер, время последнего изменения и т. Д. Для файлов в исходной папке. Когда вы видите какое-либо событие, которое может сигнализировать о движении, сверьте «отпечаток пальца» с новым файлом.
Насколько я понимаю, событие Renamed
предназначено для перемещаемых файлов ...?
Моя ошибка - в документации конкретно говорится, что только файлы внутри перемещенная папка считается «переименованной» в операции вырезания и вставки:
Операционная система и объект FileSystemWatcher интерпретируют действие вырезания и вставки или действие перемещения как действие переименования папки и ее содержимого. Если вы вырезаете и вставляете папку с файлами в просматриваемую папку, объект FileSystemWatcher сообщает только о папке как о новой, но не о ее содержимом, поскольку они, по сути, только переименованы.
Он также говорит о перемещении файлов:
Common операции файловой системы могут вызвать более одного события. Например, когда файл перемещается из одного каталога в другой, могут возникать несколько событий OnChanged и некоторые события OnCreated и OnDeleted.
Насколько я понимаю, событие Переименовано
предназначено для перемещаемых файлов ...?
Моя ошибка - в документации конкретно говорится, что только файлы внутри перемещенная папка считается "переименованной" в операции вырезания и вставки:
Операционная система и объект FileSystemWatcher интерпретируют действие вырезания и вставки или действие перемещения как действие переименования папки и ее содержимого. Если вы вырезаете и вставляете папку с файлами в просматриваемую папку, объект FileSystemWatcher сообщает только о папке как о новой, но не о ее содержимом, поскольку они, по сути, только переименованы.
Он также говорит о перемещении файлов:
Common операции файловой системы могут вызвать более одного события. Например, когда файл перемещается из одного каталога в другой, могут возникать несколько событий OnChanged и некоторые события OnCreated и OnDeleted. Перемещение файла - это сложная операция, состоящая из нескольких простых операций, поэтому возникает несколько событий.
Я рискну предположить, что «ход» действительно не существует, так что вам просто нужно будет искать « delete ', а затем отметьте этот файл как тот, который может быть `` возможно перемещен' ', а затем, если вы увидите `` создать' 'для него вскоре после этого,