У меня есть загрузчик, который я использую для разделения файлов и загрузки их на мой сервер sql. Затем я загружаю каждый фрагмент и создаю временный файл. Я пытаюсь записать список байтовых массивов (байт []) в один файл, чтобы воссоздать этот файл. Это связано с тем, что когда я пытаюсь прочитать список массивов байтов в один массив, я получаю исключение OutOfMemory. Мне просто интересно, как лучше всего это сделать. Спасибо!
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
int currentRowSelection = fUS_FileDataGridView.CurrentCell.RowIndex;
var totalNumber = fUS_FileDataGridView.Rows[currentRowSelection].Cells[6].Value;
for (int i = 1; i < 149; i++)
{
using (var stream1 = new FileStream(path + @"\" + i + ".zip", FileMode.Open, FileAccess.Read))
{
using (var reader = new BinaryReader(stream1))
{
list_.Add(reader.ReadBytes((int)stream1.Length));
stream1.Close();
stream1.Dispose();
reader.Close();
reader.Dispose();
}
}
}
//array_ = list_.SelectMany(a => a).ToArray();
filePaths_ = @"C:\Users\ATLAS\Desktop\13\fun.zip";
foreach (byte[] bytes in list_)
{
var doc = System.Text.Encoding.Default.GetString(bytes);
string textToAdd1 = bytes.ToString();
try
{
using (FileStream fs = File.Create(filePaths_))
using (StreamWriter writer = new StreamWriter(fs, Encoding.Default, 512))
{
writer.Write(textToAdd1);
writer.Close();
writer.Dispose();
}
}
finally
{
}
}
}
Обновление: мой вопрос отличается от других, которые я нашел, потому что я не могу поместить свой список байтовых массивов в один массив для записи файла. В настоящее время я получаю только файл размером 1 КБ из своего кода, где я должен получить файл размером 100 КБ.
Обновление 2: приведенный ниже код имеет гораздо больше смысла, но теперь я получаю сообщение об ошибке «поток не доступен для записи».
filePaths_ = @"C:\Users\ATLAS\Desktop\13\fun.zip";
using (FileStream fs = File.Create(filePaths_))
for (int i = 0; i < 151; i++)
{
using (var stream1 = new FileStream(path + @"\" + i + ".zip", FileMode.Open, FileAccess.Read))
{
using (var reader = new BinaryReader(stream1))
{
using (StreamWriter writer = new StreamWriter(fs, Encoding.Default, 512))
{
writer.Write(reader);
}
}
}
}
using (FileStream fs = File.Create(filePaths_))
должен быть вне циклаfor
. 04.08.2016