C# - 임시 파일 활용하기 - 생성, 삭제, 임시 파일 경로 확인

반응형

 

임시 파일이란?

  • 프로그램이 실행되는 동안 일시적으로 사용되는 파일
  • 보통 프로그램에서 필요로 하는 데이터를 저장하기 위해 사용
  • 프로그램 실행이 끝나면 삭제 됨

임시 경로 확인(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 메서드

 

 

반응형