C++ (Qt)
void createFile (const QString& fileName, const int64 fileSize, const char fillChar = 0) {
QFile file (fileName);
file.open (QIODevice::WriteOnly);
file.resize (fileSize);
int bufferSize = 1024;//1 KB or fileSize //Replace to needed
if (bufferSize > fileSize) {
bufferSize = fileSize;
}
int64 writedData = 0;
while (writedData != fileSize) {
const int64 remainingSize = fileSize - writedData;
if (remainingSize < bufferSize) {
bufferSize = remainingSize;
}
QByteArray buffer (bufferSize, fillChar);
writedData += file.write (buffer);
}
}
Вроде, так. Не проверял, писал под пивом, так что могут быть ошибки.
Да, всякие проверки на ошибки открытия/записи упустил для наглядности.
---------------------------------------------------
QByteArray buffer лучше создать и заресайзить до цикла и в нужный момент отресайзить его на оставшееся пространство.