>백엔드 개발 >C++ >File.Create()가 '파일 사용 중' 오류를 발생시키는 이유는 무엇이며 어떻게 해결할 수 있습니까?

File.Create()가 '파일 사용 중' 오류를 발생시키는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-16 22:33:14180검색

Why Does File.Create() Cause a

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.