Видео: Чтение и запись в файл с++ используя класс fstream c++. Изучение С++ для начинающих. Урок #118 2024
Ах, копирование файла - что-то очень простое, это происходит все время. Скопируйте этот файл там; скопируйте этот файл здесь. Но что именно происходит при копировании файла? Фактически вы создаете новый файл и заполняете его тем же содержимым, что и исходный файл. И как вы это делаете?
Ну, похоже, вам нужно читать каждый байт из первого файла и записывать его во второй. Большой тайм.
Но чтобы усугубить ситуацию, копирование файла означает, что вы должны убедиться, что вы его скопируете точно так же, что вы случайно не набрали лишние 0 или два в конце файла, или дополнительный возврат каретки или перевод строки в конце файла (что может произойти при копировании текстового файла).
Когда все будет сделано, оба файла должны быть одинаковыми - не только содержать ту же информацию , но также и того же размера .
И вдобавок ко всему, большинство хороших подпрограмм копирования делают еще больше! Они дают новому файлу дату, которая совпадает с датой исходного файла, и они будут устанавливать все атрибуты, включая, скажем, только чтение, если оригинал является файлом, доступным только для чтения. (Если файл доступен только для чтения, возможно, вам не удастся его скопировать в первую очередь …)
Вдруг копирование файла не так просто!
Если вы программируете в Windows, вам повезло! Пока вы не используете старую Windows 3. 1, вы получаете функцию CopyFile! Чтобы подготовиться к его использованию, вы включаете строку #include в свое приложение. Тогда вот все, что вам нужно сделать:
CopyFile ("c: / dog. Txt", "c: / dog2. Txt", TRUE);
Это копирует c: / dog. txt до c: / dog2. текст. Но обратите внимание на последний параметр: Это слово TRUE во всех столицах. Что это? Это макрос препроцессора, определенный где-то в недрах заголовочных файлов Windows.
При вызове любой из функций Windows вы должны использовать TRUE или FALSE. Это потому, что в старые времена C, когда были изобретены ранние версии Windows, не существовало типа bool. Эти находчивые люди конца 20-го века должны были определить свои собственные ИСТИНА и ЛОЖЬ как целые числа (обычно соответственно 1 и 0 соответственно или 0 и 1 соответственно).
И, кстати, этот последний параметр в CopyFile сообщает функции, что делать, если файл, который вы копируете, уже существует: TRUE означает, что не перезаписывать существующий файл; просто прервать. FALSE означает перезаписать его.