코드
void CDBAgentDlg::checkExistenceFolder(char* Path)
{
char DirName[256]; // 생성할 디렉토리 이름
char* p = Path; // 매개변수로 받은 디렉토리
char* q = DirName;
while (*p)
{
if (('\\' == *p) || ('/' == *p)) // 디렉토리 혹은 서브 디렉터리
{
if (':' != *(p - 1))
{
CreateDirectory(DirName, NULL);
}
}
*q++ = *p++;
*q = '\0';
}
CreateDirectory(DirName, NULL);
}
사용 예시
///////////////////////////////////////
// CSV 값 가져오는 THREAD
// 경로 바꿔줘야 함(현재 테스트 상태로 C드라이브로 설정해놓음.
UINT ThreadSaveSlidingCsv(LPVOID lParam)
{
CDBAgentDlg* pDlg = (CDBAgentDlg*)AfxGetApp()->m_pMainWnd;
// 슬라이딩 경로 설정
CString strPath;
CTime time = CTime::GetCurrentTime();
CString strYMD = time.Format(_T("%Y%m%d"));
CString strD = time.Format(_T("%Y%m%d_%H%M%S"));
strPath.Format("C:\\DATA\\%s\\DataBase\\Sliding\\", strYMD); // C드라이브(테스트용)
try
{
// 폴더 생성 전에 존재하는지 확인하기
if (GetFileAttributes((LPCTSTR)strPath) == INVALID_FILE_ATTRIBUTES)
{
pDlg->checkExistenceFolder(strPath.GetBuffer());
std::cout << "슬라이딩 폴더 생성함" << std::endl;
}
else
{
std::cout << "슬라이딩 폴더가 이미 생성됨" << std::endl;
}
pDlg->SaveCsvFile(strPath);
}
catch (CFileException* e)
{
// 필요시 여기서 예외처리
e->ReportError();
e->Delete();
}
return 0;
}
'개발공부 > C++' 카테고리의 다른 글
[C++ MFC] 다이얼로그 배경색 변경 (0) | 2024.04.16 |
---|---|
[C++] 템플릿 공부하기 (0) | 2024.04.09 |
[C++ MFC] 콤보박스 리스트 길이가 짧을 때 (0) | 2024.01.04 |
[c++] bool과 BOOL의 차이 (0) | 2023.12.13 |
[오류] LINK2019 확인할 수 없는 외부 참조, 함수에서 참주할 수 없는 외부 기호 (0) | 2023.12.06 |