반응형
임시 파일이란?
- 프로그램이 실행되는 동안 일시적으로 사용되는 파일
- 보통 프로그램에서 필요로 하는 데이터를 저장하기 위해 사용
- 프로그램 실행이 끝나면 삭제 됨
임시 경로 확인(GetTempPath)
- Path.GetTempPath : 현재 사용자의 임시 폴더 경로를 반환
string result = Path.GetTempPath();
Console.WriteLine(result);
// C:\Users\UserName\AppData\Local\Temp\
임시 파일 생성하기
- Path.Combine() : 새로운 임시 경로 생성
- Path.Combine(Path.GetTempPath, "파일이름") : 현재 사용자의 임시 폴더 경로와 파일 이름 반환
- File.WriteAllText(파일경로, "텍스트") : 임시 파일에 입력한 텍스트 저장
- File.Delete(파일경로) : 임시 파일 삭제
string tempFilePath = Path.Combine(Path.GetTempPath(), "myTempFile.txt");
// 임시 파일 생성 및 사용
File.WriteAllText(tempFilePath, "임시 파일 테스트");
임시 파일 삭제하기
- File.Delete(파일경로) : 파일 삭제
// 프로그램 종료 시 임시 파일 삭제
File.Delete(tempFilePath);
임시 파일 존재 시 파일 삭제 후 생성하기
에러나 예기치 못한 프로그램 종료로 임시 파일이 삭제되지 않은 경우,
파일이 존재하여 임시 파일을 생성할 수 없다고 에러가 출력 됨
이럴 때, 임시 파일이 존재하는지 확인하여 삭제 후 임시 파일을 진행하는 방법
반드시 임시 파일 생성 코드 위에 위치하여야 함
- File.Exists(파일경로) : 파일이 존재하는지 확인, 존재:1/미존재:0
// 임시 파일 존재 시 삭제
if (File.Exists(tempFilePath))
File.Delete(tempFilePath);
종합 코드
- 임시 파일 생성시 파일이 존재하면 삭제,
- 임시 파일을 생성 후 프로그램 종료시 임시 파일 삭제
// 임시 파일 경로 설정
string tempFilePath = Path.Combine(Path.GetTempPath(), "testCode.xml");
// 임시 파일 존재 시 삭제
if (File.Exists(tempFilePath))
File.Delete(tempFilePath);
// XML 파일 정보 가져오기
string xmlString = "";
/*
중략
*/
// 임시 파일 생성
System.IO.File.WriteAllText(tempFilePath, xmlString);
// 임시 파일 삭제
File.Delete(tempFilePath);
임시 파일 활용 예시 및 임시 파일 생성 확인
임시 파일 활용 예시 (사용중인 파일을 호출 할 수 없을 경우)
- 해당 프로젝트에서는 한글 문서를 읽어와서 텍스트와 수식만 추출하는 프로그램
- 객체가 해당 한글 문서를 열고 있는 상태이기 때문에 해당 문서의 글을 따로 읽어 올 수 없는 상태
- 때문에 임시 파일을 이용하여 해당 문서의 글 내용을 불러와서 출력하는 방식
임시 파일 생성 확인
- 원래대로라면 프로그램에서 '추출'이라는 버튼을 누르고 텍스트와 수식이 출력이 끝나면 바로 임시 파일이 삭제되어야 함
- 확인을 위하여 삭제 부분을 임시로 주석 처리하고 테스트
참고
Microsoft - Learn - .NET 7 - Path.GetTempPath 메서드
반응형