파일을 분할하여 SQL Server에 업로드하는 업 로더가 있습니다. 그런 다음 각 청크를 다운로드하고 임시 파일을 만듭니다. 바이트 배열 (byte []) 목록을 하나의 파일에 작성하여 해당 파일을 다시 작성하려고합니다. 바이트 배열 목록을 하나의 배열로 읽으려고하면 OutOfMemory 예외가 발생하기 때문입니다. 이 작업을 수행하는 가장 좋은 방법은 무엇인지 궁금합니다. 감사!바이트 배열 목록을 파일에 쓰는 방법 C#
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
{
}
}
}
업데이트 : 내 질문에 내가 파일을 작성하는 하나의 배열로 바이트 배열의 내 목록을 넣을 수 없기 때문에 내가 찾은 다른 사람과 다르다. 현재 100KB 파일을 가져와야하는 코드에서 1KB 파일 만 가져옵니다.
업데이트 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);
}
}
}
}
http://stackoverflow.com/questions/381508/can-a-byte-array-be-written-to-a-file-in-c –
@NarekArzumanyan 해당 페이지의 아무 것도 "List"을 쓸 수 없습니다. 그래도 파일일까요? 나는 메모리 부족 예외가 발생하기 때문에 그것을 하나의 배열에 넣을 수 없다. –
TWelles1
가능한 중복 [C# 바이트 배열을 기존 파일에 추가] (http://stackoverflow.com/questions/6862368/c-sharp-append-byte- array-to-existing-file) – sr28