문제 상황
게임을 불러오는데 성공한 후, 게임을 저장하려는데 저장이 안되고 프로그램이 멈추는 문제가 발생했습니다.
시도해본 것, 해결방법
당시 발생한 문제 상황인데.
마지막의 because it is being used by another process 를 보고 무슨 상황인지 이해하였습니다.
public bool LoadGame()
{
//파일이 없으면 불러오기 실패
if(!File.Exists(txtPath))
{
return false;
}
else
{
//리스트를 비워서 불러올 준비
saveDataList.Clear();
//줄 불러오기
StreamReader reader = new StreamReader(txtPath);
string readLine;
while((readLine = reader.ReadLine()) != null)
{
//각 줄을 리스트에 저장
saveDataList.Add(readLine);
}
return true;
}
}
게임을 불러오면서 텍스트 파일을 연 뒤, 해당 파일의 사용종료(파일 닫기) 를 선언하지 않은상태입니다.
public bool LoadGame()
{
//파일이 없으면 불러오기 실패
if(!File.Exists(txtPath))
{
return false;
}
else
{
//리스트를 비워서 불러올 준비
saveDataList.Clear();
//줄 불러오기
StreamReader reader = new StreamReader(txtPath);
string readLine;
while((readLine = reader.ReadLine()) != null)
{
//각 줄을 리스트에 저장
saveDataList.Add(readLine);
}
//파일 사용 끝
reader.Close();
return true;
}
}
StreamReader 클래스의 객체를 통해 텍스트 파일을 연 상태이기 때문에
해당 객체의 Close() 함수를 이용하여 사용 종료를 선언하고 파일을 닫으면 문제가 해결됩니다.
알게된 점
C, C++, C#, 파이썬 등 어떠한 프로그램을 사용하든 프로그램에서 다른 폴더나 파일을 읽게되면 해당 폴더의 사용이 종료되었음을 꼭 선언해주어야 합니다.
그렇지 않을경우 해당 파일은 계속 프로그램이 사용중인것으로 인식하게 되며, 이후 해당 폴더에 다시 접근할 때 문제가 발생할 수 있습니다
'내일배움캠프 > TIL' 카테고리의 다른 글
내일배움캠프 10일차 TIL - C# 싱글톤 (0) | 2024.09.26 |
---|---|
내일배움캠프 9일차 TIL - 인터페이스 (0) | 2024.09.25 |
내일배움캠프 7일차 TIL - 개인 프로젝트 진행 상황 돌아보기 (0) | 2024.09.23 |
내일배움캠프 6일차 TIL - Null 값을 가질수 없는 struct (0) | 2024.09.20 |
내일배움캠프 5일차 TIL - 텍스트 RPG, 캐릭터 생성까지 (0) | 2024.09.19 |