Скачав эту работу ты посмотришь как можно выполнить следующие манипуляции с файлами на 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. Проект содержит комментарии на английском языке
Телеграм
-