12 #error TnbFilePathManager.h is only supported on Windows NT Series platforms.
19#pragma comment(lib,"SHLWAPI.lib")
57 CStr str = lpszFullPath;
61 return str.
Left(p + 1);
74 DWORD dwRc = ::GetCurrentDirectory(MAX_PATH, str.
GetBuffer(MAX_PATH));
76 ASSERTLIB( dwRc != 0 );
88 ::SetCurrentDirectory(m_strManagePath);
97 ::SetCurrentDirectory(m_strCurrentPath);
107 ::SetCurrentDirectory(m_strCurrentPath);
118 return m_strManagePath;
131 bool boRc = !! ::SetCurrentDirectory(lpszPath);
166 BOOL r = ::PathRelativePathTo(s.
GetBuffer(MAX_PATH),
168 FILE_ATTRIBUTE_DIRECTORY,
170 FILE_ATTRIBUTE_ARCHIVE);
194 BOOL r = ::PathCanonicalize(s.
GetBuffer(MAX_PATH),
GetPath() + _T(
"\\") + path);
214 CStr path = lpszPath;
220 if ( iType == 0 || iType == 1 )
223 if ( iType == 0 && path.
IsEmpty() )
232 if ( ! ::PathIsRelative(lpszFile) )
238 if ( ! ::PathSearchAndQualify(
250 strFullpath = lpszFile;
254 TCHAR atcBuf[MAX_PATH];
255 ::GetShortPathName(strFullpath, atcBuf, MAX_PATH);
256 ::GetLongPathName(atcBuf, strFullpath.
GetBuffer(MAX_PATH), MAX_PATH);
260 if ( fileHandle.
Open(strFullpath,
true) )
276 return !! ::PathIsRelative(lpszPath);
280 CStr m_strCurrentPath;
281 CStr m_strManagePath;
#define loop(VAR, CNT)
loop構文.
void ResetPath(bool boIsManagePath=true) const
[設定] パスリセット.
bool SetPath(LPCTSTR lpszPath)
[設定] 管理パス指定.
static CStr GetCurrentPath(void)
[取得] プロセスのカレントパス取得.
static bool IsRelative(LPCTSTR lpszPath)
[確認] 相対パスチェック
CStr GetCanonicalize(LPCTSTR path) const
[取得] 絶対パス作成.
static CStr GetPathName(LPCTSTR lpszFullPath)
[取得] フォルダ名抽出.
CStr GetRelativePathTo(LPCTSTR path) const
[取得] 相対パス作成.
CFilePathManager(void)
コンストラクタ.
CStr GetPath(void) const
[取得] 管理パス取得 インスタンスで管理しているパスを返します。
bool SetPathOfFile(LPCTSTR lpszFile)
[設定] 管理パス指定.
~CFilePathManager(void)
デストラクタ.
CFileReader Open(LPCTSTR lpszFile, LPCTSTR lpszPath=NULL) const
[操作] ファイルオープン.
bool Open(LPCTSTR lpszName, bool boIsShare=true, bool boDummy=false)
[操作] オープン
INT_PTR ReverseFindOneOf(const TYP *lpsz) const
[確認] 検索(後ろから)
bool IsEmpty(void) const
[確認] 空チェック
CStrT Left(size_t iSize) const
[作成] 範囲取得.
void ReleaseBuffer(void)
[操作] 割り当てたバッファを開放.
static CStrT Fmt(const TCHAR *lpszFormat,...)
[作成] 書式付き文字列作成
TYP * GetBuffer(size_t iLength=0)
[操作] 書き込みバッファ要求.
CStr GetProcessPath(void)
[取得] プロセスのパス取得.
void IgnoreUnusedValue(const T &value)
[宣言] 参照しない値宣言.