Microsoft Windows и ее предок MS-DOS всегда имели в своих файлах атрибут, который указывает, был ли этот файл изменен с момента последней очистки этого атрибута, что-то вроде «грязного флага». В прошлом он использовался программами резервного копирования, чтобы находить те файлы, для которых нужно было выполнить поэтапное резервное копирование, а затем очищался при создании копии этого файла.
Вы можете использовать File.GetAttributes, чтобы получить атрибуты в файле, и использовать File.SetAttributes, чтобы очистить этот атрибут «Архив». В следующий раз, когда этот файл будет открыт для записи, этот архив будет снова установлен.
Будьте осторожны при копировании файлов, которые были изменены, так как эти файлы все еще могут быть открыты. Возможно, вы захотите избежать проблем параллелизма, открыв их для чтения исключительно при копировании, и если это не удастся, вы знаете, что файл все еще открыт для записи.