"Перезаписать" файл можно двумья способами:
- удалить исходный файл и записать новый с таким же именем (в пределах одного раздела);
- открыть существующий файл и записать новые данные поверх старых.
Практически вся работа с файлами в винде связана с функцией
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
(обратите внимание на описание параметра dwCreationDisposition, особенно на CREATE_ALWAYS). Imho, восстановить данные возможно лишь в случае, когда изначальный файл был удален и потом создан новый: такой вариант в винде разумно применять, когда нужно переместить (что на самом деле значит переименовать) файл из папки в папку в пределах одного раздела (логического диска), ведь проще удалить файл, который уже существует, и переименовать файл, который нужно переместить нежели переливать все данные "из пустого в порожнее". В случае, когда нужно переместить файл с раздела на раздел происходит сначала копирование содержимого из исходного файла в файл-назначение (функция
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
не позволяет перемещать файлы с одного раздела на другой), а потом удаление исходного файла (в данном случае более старая версия xls-файла). Если происходит перезапись файла, то логично предположить, что система не мечется по винту в поисках свободного места и тупо переписывает данные файла-назначения (насколько хватит размера, а потом уже ищет свободное место. Кстати, по сходному принципу работают файловые шреддеры, переписывая файл всякой ересью с последующим удалением оного из файловой системы). Вот и думайте, что вы там сможете восстановить.
Разве что, в случае когда более новый файл был больше размером, то на винте останутся неперезаписанные данные, здесь надо уже вникать в структуру файла xls. И я очень сильно сомневаюсь, что из тех остатков удастся восстановить файл до исходного состояния.
PS. В ntfs отстутсвует журналирование данных (такой вот булыжник в огород Microsoft).