StreamWriter를 사용하여 하나의 파일에서 다른 파일로 청크를 복사합니다. 두 파일 모두 동일한 원격 위치에 있지만 프로세스는 로컬 컴퓨터에서 실행됩니다. 네트워크 장애가 발생할 경우 복구하고 계속 진행하려고합니다. 내 코드를 단계별로 실행하고 특정 순간에 네트워크 연결을 해제하여 시뮬레이션하고 있습니다.네트워크 복구 실패 후 스팀 작성기 처리
문제는 내가 네트워크를 다시 가져올 때 StreamWriter로 아무 것도 할 수 없다는 것입니다. Flush()
, Close()
또는 Dispose()
을 호출하면 IOException "지정한 네트워크 이름을 더 이상 사용할 수 없습니다."가 throw됩니다. 내 코드는 다음과 같습니다.
int charsToRead = 100;
while(!inputFileStream.EndOfStream)
{
char[] block = new char[charsToRead];
int charsRead = inputFileStream.ReadBlock(block, 0, charsToRead);
outputFileStream.Write(new string(block, 0, charsRead));
outputFileStream.Flush();
}
네트워크 장애로부터 복구 한 후 StreamWriter를 계속 유지하는 가장 좋은 방법은 무엇입니까? 감사.
업데이트 : 텍스트 파일을 사용하고 있습니다.
Using-block에 넣으려고 했습니까? – Koen
@Koen 어떻게 도움이 될까요? – Default
이 질문에 대한 답변은 아니지만 'StreamReader/-Writer'는 바이트를 읽지 않고 ** 문자 *를 읽어야한다는 것을 알아야한다고 생각합니다. 실제로'char []'을 할당했지만 변수'bytesRead'를 호출했습니다. 이것은 틀 렸습니다. 파일이 * text * 파일 인 경우에만'StreamReader/-Writer'를 사용해야합니다. 어떤 종류의 데이터라도 복사하고 싶다면,'FileStream' (File.Open()을 사용하여 생성)을 사용하십시오. – Timwi