У меня есть двоичный файл, который на самом деле является стеком файлов, формат:
lengh_of_subfile,subfile
length_of_subfile
- 64-битное целое число. Я могу прочитать long
без проблем, но когда я пытаюсь создать буфер для подфайла, я получаю ошибки компиляции, говорящие, что он не может быть прочитан во время компиляции. Что я упускаю? Я написал идентичный инструмент извлечения на erlang, PHP и C#... D ставит меня в тупик.
void main(string args[]) {
Stream file = new BufferedFile(args[1], FileMode.In);
int counter = 0;
while(file.position < file.size) {
ulong len;
file.read(len);
ubyte[len] ogg;
file.read(ogg);
string outname = getcwd() ~ "/" ~ to!string(counter) ~ ".ogg";
Stream oggout = new BufferedFile(outname, FileMode.OutNew);
oggout.write(ogg);
writefln("Creating file " ~ to!string(counter) ~ ".ogg");
counter++;
}
}