시스템.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
'programing' 카테고리의 다른 글
Ruby에서 범위로 배열을 채우는 올바른 방법 (0) | 2023.06.11 |
---|---|
콜론을 사용하는 것과 유형을 선언하는 구문으로 사용하는 것의 차이점은 무엇입니까? (0) | 2023.06.11 |
MongoDB에서 하위 문서를 루트 수준으로 평평하게 만드는 방법은 무엇입니까? (0) | 2023.06.11 |
Python에서 예외 메시지를 올바르게 가져오는 방법 (0) | 2023.06.06 |
Jooq를 사용한 테스트에 더미 H2 DB 사용 (0) | 2023.06.06 |