2013-06-18 3 views
0

다른 파일의 끝에 하나의 파일을 직접 추가해야하지만 전체 파일을 메모리에로드하고 버퍼 이음새를 사용하여 훨씬 느리게 파일을로드하려고합니다. 직접적인 방법보다 ...vb.net 다른 파일에 하나의 파일을 추가하는 방법

+0

가능한 중복 (http://stackoverflow.com/questions/6862368/c-sharp-append-byte-array-to-existing-file) –

+0

이 VB이다 .net ... – Daniel

답변

1

당신은 FileMode.Append을 사용할 수 있습니다 (실제 바이트가 추가 될 수 있습니다 ... 텍스트 파일 없음) : 존재하는 경우

Using reader = File.OpenRead(pathRead) 
    Using writer = New FileStream(pathWrite, FileMode.Append) 
     Dim b = reader.ReadByte() 
     While b <> -1 
      writer.WriteByte(CByte(b)) 
      b = reader.ReadByte() 
     End While 
    End Using 
End Using 

추가] 파일을 엽니 다 파일 끝에 을 찾거나 새 파일을 만듭니다. 이 경우 FileIOPermissionAccess.Append 권한이 필요합니다. FileMode.Append는 FileAccess.Write와 결합해서 만 사용할 수 있습니다. 파일 끝나기 전에 위치 찾기를 시도하면 IOException 예외가 발생하고 읽으려고하면 이 실패하고 NotSupportedException 예외가 throw됩니다.

[기존 파일에 추가] C# 바이트 배열]의
+0

좋은데, 소스 파일을 읽는 것은 어떨까요? 한 번에 모든 파일을 한 번에 읽지 않고 한 파일의 내용을 다른 파일의 끝에 추가하기 위해 스트리밍해야 할 것입니다. 따라서 – Daniel

+0

@DanielVallandTorgrimsen : 내 대답을 편집하여 제공하십시오. 스트리밍 방식. 그러나, 완전히 테스트되지 않았습니다. –

+0

루프의 각 바이트를 복사하는 솔기가 있습니다. 이것이 가장 효과적인 방법이라고 확신합니까? 고마워요 :) – Daniel

관련 문제