2012-07-05 7 views
0

다음과 같은 코드가 있습니다. Stream입니다. 나는 이것이 정말로 오래되고 추악하며 이것을하기위한 더 깨끗한 방법이 있어야한다고 생각합니다.이 FileStream .NET 코드를 리팩터링하려고 시도했습니다.

// Write the current chunk to the stream. 
using (var fileStream = new FileStream(tempPath, currentChunk == 0 ? 
                FileMode.Create : 
                FileMode.Append)) 
{ 
    var buffer = new byte[uploadedFile.Length]; 
    uploadedFile.Read(buffer, 0, buffer.Length); 
    fileStream.Write(buffer, 0, buffer.Length); 
} 

무엇을하고 있습니까?

청크에 파일을 업로드합니다. 그래서 우리는 새 파일을 만듭니다 (첫 번째 청크에있을 때, 즉 청크 == 0). 또는 청크 데이터를 기존 파일에 추가합니다.

3 줄이 더 이상 사용되지 않아 사용 가능한 더 나은 방법이 있다고 생각합니다.

예/아니요/어쩌면?


편집 : .NET 4.0은 내게로 괜찮습니다 :)

+1

당신이 프로그래밍 참조를'읽으면 FileMode.Append' 파일이 존재하지 않는다면 추가하거나 생성합니다 - http://msdn.microsoft.com/en-us/library/system.io.filemode.aspx 기본적으로 인라인 iif가 필요하지 않습니까? –

+0

젠장! 당연하지! 어떻게 그걸 잊었 어 :(: 홍당무 : –

답변

1

File 클래스 (System.IO)은 파일을 망칠 수있는 정적 방법을 제공합니다. 그래서 코드의 전체 블록이 될 수있다 :

File.AppendAllText(path, contentToAppend); 

다른 방법이 있습니다 WriteAllBytes(...), WriteAllText(...), 또는 ReadAllText(...) 참고로

같은 : http://msdn.microsoft.com/en-us/library/system.io.file.aspx

관련 문제