programing

시스템.IO.파일 잠금 만들기

instargram 2023. 6. 11. 10:18
반응형

시스템.IO.파일 잠금 만들기

사용 중System.IO.File.Create파일을 만듭니다.스트림 라이터로 쓰는 것이 아니라 그냥 만드는 것입니다.

응용프로그램이 새로 만든 파일(파일이 사용 중임)을 열려고 할 때 프런트 엔드에서 서버 오류가 발생합니다.그러면 쓰레기 수거가 진행되는 것처럼 보이고 몇 분 후에는 모든 것이 괜찮습니다.

이제 스트림 라이터를 사용하고 있으면 종료해야 한다는 것을 알게 되었습니다.만드는 것도 마찬가지입니까?

파일에 스트림 라이터를 열고 바로 닫으면 해결된다고 읽은 적이 있지만, 엉망인 것 같습니다.더 간단한 방법이 있습니까?

사용해 보십시오.

System.IO.File.Create(FullFName).Close();

File.Create를 반환합니다.FileStream다음과 같이 사용해야 합니다.

using (FileStream fs = File.Create(path))
{
    //you can use the filstream here to put stuff in the file if you want to
}

파일을 만들면 다음이 열립니다.FileStream그것에, 그러므로, 그것을 잠그는 것.File.Create를 반환합니다.FileStream).

파일에 액세스하려면 이 스트림을 닫아야 합니다.이 작업은 다음과 같이 수행하는 것이 가장 좋습니다.using문:

using(FileStream fs = File.Create(path))
{
}

사용 시File.Create당신은 a.FileStream반환된스트림을 닫을 때까지 또는 다음 시간까지FileStream개체가 폐기된 경우(가비지 수집기의 피니셔에 의해) 열린 상태로 유지됩니다.

FileStream도구들IDisposable따라서 다음을 수행할 수 있습니다.

using(FileStream fs = File.Create(filename))
{
    // Do stuff like write to the file
}

using문은 "통사적 설탕"이며 컴파일러가 기능적으로 다음과 같은 코드를 생성하도록 합니다.

FileStream fs = File.Create(filename)
try
{
    // Do stuff like write to the file
}
finally
{
    fs.Dispose();
}

Dispose메서드 호출Close내부적으로

다음을 사용했습니다.System.IO.File.Create(sFullFileName);

위의 것.Create메서드가 파일을 닫지 않았습니다.

이제 사용:System.IO.File.WriteAllText(sFullFileName, "Uploading");

이 메서드는 파일을 만들고 닫습니다(참고: 파일에 "업로드" 문자열을 넣었지만 확실합니다).string.Empty또한 작동할 것입니다.

Create메소드가 파일 핸들을 반환합니다.파일을 다시 사용하기 전에 파일 핸들을 닫아야 합니다.MSDN 문서 파일에서 자세한 내용을 참조하십시오.메서드(문자열)를 만듭니다.

요약:.

이 메서드로 생성된 FileStream 개체의 기본 FileShare 값은 없음입니다. 원래 파일 핸들을 닫을 때까지 다른 프로세스나 코드가 생성된 파일에 액세스할 수 없습니다.

언급URL : https://stackoverflow.com/questions/4680284/system-io-file-create-locking-a-file

반응형