File.Create() 문제 해결: 파일 액세스 오류 해결
런타임 파일 생성 시 액세스 문제가 자주 발생합니다. 일반적인 오류는 File.Create()
을 사용한 후에도 "다른 프로세스에서 사용 중이기 때문에 해당 프로세스에서 파일에 액세스할 수 없습니다."입니다.
문제
이 시나리오에는 파일 존재를 확인하고 필요한 경우 파일을 생성하는 작업이 포함됩니다. 이후에 파일에 쓰려고 하면 "파일 사용 중" 오류가 발생합니다. 이는 일반적으로 다음과 같은 코드에서 발생합니다.
<code class="language-csharp">string filePath = string.Format(@"{0}\M{1}.dat", ConfigurationManager.AppSettings["DirectoryPath"], costCentre); if (!File.Exists(filePath)) { File.Create(filePath); } using (StreamWriter sw = File.AppendText(filePath)) { //write my text }</code>
솔루션
File.Create()
파일 포인터만 엽니다. 자동으로 닫히지는 않습니다. 이 솔루션에서는 Close()
을 사용하여 파일을 생성한 후 즉시 명시적으로 닫아야 합니다. 또한, 이 특정한 경우에는 File.WriteAllText()
을 사용하는 것이 File.AppendText()
보다 더 간단한 접근 방식입니다.
수정된 코드:
<code class="language-csharp">File.Create(filePath).Close(); File.WriteAllText(filePath, FileText); // Assuming FileText variable holds the text to write</code>
중요 고려사항
이 솔루션은 파일 액세스 문제를 해결하지만 File.WriteAllText()
은 단일 패스 특성으로 인해 대용량 텍스트 파일에 적합하지 않습니다. 대용량 파일의 경우 더 나은 성능을 위해 StreamWriter
을 사용하여 데이터를 스트리밍하는 등 보다 효율적인 방법을 고려하세요.
위 내용은 File.Create()가 '파일 사용 중' 오류를 발생시키는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!