File.Create 후 파일 닫기
이 질문에 이미 답변이 있습니다.
파일이 존재하는지 확인합니다.
if(!File.Exists(myPath))
{
File.Create(myPath);
}
그러나이 StreamReader
새로 생성 된 파일 로를 생성하려고하면 다음 과 같은 오류가 발생합니다.
다른 프로세스에서 사용 중이므로 프로세스가 '[my file path here]'파일에 액세스 할 수 없습니다.
File.Close(myPath)
생성 후 닫을 수 있도록 호출 할 수 있는 것이 없습니다. 이 리소스를 해제하여 나중에 프로그램에서 열 수 있도록하려면 어떻게해야합니까?
File.Create(string)
FileStream
클래스 의 인스턴스를 반환합니다 . Stream.Close()
이 개체를 닫고 사용중인 리소스를 해제하기 위해이 개체에서 메서드를 호출 할 수 있습니다 .
var myFile = File.Create(myPath);
myFile.Close();
그러나를 FileStream
구현 하므로이 명령문IDisposable
을 활용할 수 있습니다 (일반적으로 이와 같은 상황을 처리하는 데 선호되는 방법). 이렇게하면 스트림이 닫히고 작업이 끝나면 올바르게 처리됩니다.using
using (var myFile = File.Create(myPath))
{
// interact with myFile here, it will be disposed automatically
}
이 함수는 FileStream
객체를 반환 합니다. 따라서 반환 값을 StreamWriter
사용하여 개체의 적절한 메서드를 사용하여 열거 나 닫을 수 있습니다.
File.Create(myPath).Close();
File.Create
FileStream
호출 할 수 있는 객체를 반환합니다 Close()
.
그 이유는 파일을 생성하기 위해 메서드에서 FileStream이 반환되기 때문입니다. FileStream을 변수로 반환하거나 File.Create 이후에 직접 close 메서드를 호출해야합니다.
using 블록을 사용하여 이와 같은 작업에 대한 IDispose 패턴을 구현하는 것이 가장 좋습니다. 아마도 더 잘 작동 할 수있는 것은 다음과 같습니다.
if(!File.Exists(myPath)){
using(FileStream fs = File.Create(myPath))
using(StreamWriter writer = new StreamWriter(fs)){
// do your work here
}
}
File.WriteAllText(file,content)
닫기 쓰기 작성
File.WriteAllBytes-- type binary
:)
참고 URL : https://stackoverflow.com/questions/5156254/closing-a-file-after-file-create
'Program Tip' 카테고리의 다른 글
UITableView 구분선 (0) | 2020.10.20 |
---|---|
시작하지 못했습니다. (0) | 2020.10.20 |
Python의 단순 URL GET / POST 함수 (0) | 2020.10.20 |
Android 앱의 방향을 세로 모드로 잠그는 방법은 무엇입니까? (0) | 2020.10.20 |
Maven 로컬 리포지토리 위치를 얻는 방법은 무엇입니까? (0) | 2020.10.20 |