Проблема с использованием fprintf
для объединения файлов заключается в том, что если файл содержит специальные символы (например, \
или %
), то fprintf
, скорее всего, завершится ошибкой.Очень похожим подходом будет использование fread
и fwrite
для прямой конкатенации содержимого файла без какой-либо интерпретации.
function catfiles(dest, sources)
fdest = fopen(dest, 'wb');
for source = 1:numel(sources)
fsource = fopen(source,'rb');
source_data = fread(fsource);
fwrite(fdest, source_data);
fclose(fsource);
end
fclose(fdest);
Использование
>> catfiles('dest.txt', {'source1.txt', 'source2.txt'});
Я не включил все проверки, которые выполняет ответ @ CitizenInsane, но это хорошая идея.