Скачав эту работу ты посмотришь как можно выполнить следующие манипуляции с файлами на C#:
- байт за байтом читаем тестовый файл (FileStream, File.OpenRead())
- архивируем наш файл (GZipStream)
- считываем файл построчно (StreamReader)
- записываем файл построчно (StreamWriter)
- копируем файл (File.Copy())
- переименовываем файл(File.Move())
Пример метода который читает файл побайтно и одновременно архивирует его
/// <summary> /// Read input file and write it to the output archived file /// </summary> /// <param name="inFile">Input file name</param> /// <param name="outFile">Output file name</param> static void ArchiveFile(string inFile, string outFile) { FileStream src = File.OpenRead(inFile); // (new stream) open source file for reading FileStream des = File.Create(outFile); // (new stream) open destinationfile for creation GZipStream zipStream = new GZipStream(des, CompressionMode.Compress); // (new stream) open archive stream var singleByte = src.ReadByte(); // read input file byte by byte and write i to the archive in the same time while(singleByte != -1) { zipStream.WriteByte((byte)singleByte); singleByte = src.ReadByte(); } /* Closs all stream, but better use "using" (look at ReadFile() ) which will close stream (call Stream.Dispose) event if exception will be raised http://stackoverflow.com/questions/707336/will-a-using-clause-close-this-stream */ src.Close(); zipStream.Close(); des.Close(); }
Содержание прикрепленных файлов
- C# Streams (demo) - исполняемый файл (консольное приложение)
- C# Streams (source) - исходный код на C# (Visual Studio 2015)
Полезные ссылки для дальнейшего чтения и углубления знаний
P.S. Проект содержит комментарии на английском языке
dmytro