Я хочу разделить большой файл на более мелкие, не копируя часть файла и не используя файловый поток или функции, которые его используют (если это возможно).
Представьте себе, у нас есть большой файл, который состоит из 3 файлов:
[[File1bytes][File2bytes][File3bytes]]
На мой взгляд, мы можем сделать это с помощью следующих шагов:
Используйте функцию SetEndOfFile, чтобы обрезать байты последнего файла ([File3bytes]
в нашем примере)
Каким-то образом заставить нашу файловую систему распознавать эти усеченные байты ([File3bytes]
) как реальный файл (возможно, добавив некоторую информацию в таблицу MFT, или сделав что-нибудь с NTFS, если это возможно, или используя некоторую функцию или метод, который может сделать все упомянутое для нас).
Какие-либо предложения?
Как насчет создания файловой системы, вложенной в существующую файловую систему, где фактически находится очень большой файл, и определения некоторых команд IOCTL для разделения? Проверьте эту ссылку:
Как я могу написать свою собственную «файловую систему» в Windows?