Огромный EXE Файл , Нужна помошь - C#
Формулировка задачи:
И так , ситуация такая , есть программа , которая берет файл(любой) и записывает его в конце другой программы(отныне шаблон) , которая должна читать записанный в себе файл и копировать куда то (типа инсталятора, только из одного setup файла) . все работает нормально , пока это проделываешь с небольшими файлами(до 100мб) , но когда дело доходит до >=1гб , шаблон запускается больше одной минуты , в то время как этот 1гб файл шаблон легко может читать если он не в нем(в шаблоне) . То есть похоже задержка идет из за windows-а , пока он не проанализирует весь файл , он не запустит его .
Вопрос такой , как заставить винду при двойном клике на ехе-шник сразу же запускать его , а не смотреть все содержимое , не знаю может там какие то заголовки есть , в которых файл нужно вставлять , или какие то команды на asm(если сглупил не ругайтесь) , хоть что не будь ?
p.s Обе программы написаны на C# , но если есть решения для других языков , то тоже сойдет
Решение задачи: «Огромный EXE Файл , Нужна помошь»
textual
Листинг программы
int buffLength = 1024 * 1024 * 20; // берем куски по 20 Мб long eof = 0L; byte[] buff = new byte[buffLength]; using (FileStream fsw = new FileStream(@"исходный_файл", FileMode.Append, FileAccess.Write), fsr = new FileStream(@"файл_который_нужно_добавить", FileMode.Open, FileAccess.Read)) { long fileSize = fsr.Length; while (fileSize != eof) { if ((eof + buffLength) > fileSize) buffLength = (int)(fileSize - eof); Console.WriteLine("Write progress: {0:0.0}%", ((double)eof / (double)fileSize) * 100.0); fsr.Read(buff, 0, buffLength); fsw.Write(buff, 0, buffLength); fsw.Flush(); Console.Clear(); eof += buffLength; } } Console.WriteLine("Copying is complete... Press enter to end."); Console.ReadLine();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д