101 lines
2.7 KiB
C++
101 lines
2.7 KiB
C++
/*//===============================================================
|
|
|
|
<< DIRECTORY >>
|
|
|
|
FILE : DIRECTORY.H, DIRECTORY.CPP
|
|
DESC : 디렉토리 관리 클래스
|
|
INIT BUILT DATE : 2007. 07. 23
|
|
LAST BUILT DATE : 2007. 08. 24
|
|
|
|
Copyrightⓒ 2002~2007 B4nFter (b4nfter@gmail.com) and Co-Writers. All Rights Reserved.
|
|
|
|
*///===============================================================
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
// INCLUDE
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
#include <WINDOWS.H>
|
|
#include <TCHAR.H>
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
// DEFINE
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
#define DF_DIR_MAX_PATH (1024) // MAX_PATH 대신 사용
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
// DECLARATION
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
//*---------------------------------------------------------------
|
|
// TYPE : CLASS
|
|
// NAME : CDirectory
|
|
//*---------------------------------------------------------------
|
|
// DESC : 디렉토리 관리 클래스
|
|
// PRGM : B4nFter
|
|
//*---------------------------------------------------------------
|
|
class CDirectory
|
|
{
|
|
|
|
public:
|
|
CDirectory();
|
|
virtual ~CDirectory();
|
|
|
|
DWORD Begin(LPCTSTR lpszDirectoryFileName);
|
|
DWORD Next();
|
|
VOID End();
|
|
|
|
const WIN32_FIND_DATA& GetFindData() const { return(m_stFindData); }
|
|
BOOL IsDirectory() const { return((FILE_ATTRIBUTE_DIRECTORY & GetFindData().dwFileAttributes)?(TRUE):(FALSE)); }
|
|
|
|
BOOL IsOpen() const { return((INVALID_HANDLE_VALUE != m_hFind)?(TRUE):(FALSE)); } // _DEBUG
|
|
|
|
static DWORD Copy(
|
|
LPCTSTR lpszSourceDirectoryName,
|
|
LPCTSTR lpszTargetDirectoryName,
|
|
BOOL bOverWrite = FALSE,
|
|
BOOL bSubDirectory = FALSE
|
|
);
|
|
static DWORD Move(
|
|
LPCTSTR lpszSourceDirectoryName,
|
|
LPCTSTR lpszTargetDirectoryName,
|
|
BOOL bOverWrite = FALSE,
|
|
BOOL bSubDirectory = FALSE
|
|
);
|
|
static DWORD Rename(LPCTSTR lpszSourceDirectoryName, LPCTSTR lpszTargetDirectoryName);
|
|
static DWORD Remove(LPCTSTR lpszSourceDirectoryName, BOOL bCheckFileExist = TRUE);
|
|
|
|
private:
|
|
VOID Reset();
|
|
|
|
static DWORD CheckFixDirectoryName(
|
|
LPCTSTR lpszSourceDirectoryNameIn,
|
|
LPCTSTR lpszTargetDirectoryNameIn,
|
|
LPTSTR lpszSourceDirectoryNameOut,
|
|
const INT iSourceDirectoryNameOutSize,
|
|
LPTSTR lpszTargetDirectoryNameOut,
|
|
const INT iTargetDirectoryNameOutSize
|
|
);
|
|
static DWORD CopyWork(
|
|
LPCTSTR lpszSourceDirectoryName,
|
|
LPCTSTR lpszTargetDirectoryName,
|
|
BOOL bDoErase,
|
|
BOOL bOverWrite = FALSE,
|
|
BOOL bSubDirectory = FALSE
|
|
);
|
|
static DWORD RemoveWork(LPCTSTR lpszSourceDirectoryName, BOOL bCheckFileExist = FALSE);
|
|
|
|
private :
|
|
WIN32_FIND_DATA m_stFindData;
|
|
HANDLE m_hFind;
|
|
|
|
static const TCHAR m_szSourceDirectorySeperator[3];
|
|
};
|
|
|