TNB Library
TnbTemporaryDirectory.h
[詳解]
1#pragma once
11#include "TnbTemporaryFile.h"
12#include "TnbFileName.h"
13
14
15#ifndef _WIN32_WCE
16 #include <SHLWAPI.h>
17 #pragma comment(lib, "SHLWAPI.lib")
18#endif
19
20
21
22//TNB Library
23namespace TNB
24{
25
26
27
45template<DWORD PFIX>
47{
48 CStr m_strDir;
49
51 bool m_Remove(LPCTSTR lpszDir)
52 {
53 if ( ::RemoveDirectory(lpszDir) )
54 {
55 return true;
56 }
57 CFileName fn(lpszDir);
58 return fn.Remove(false, true);
59 }
60
61public:
62
65 {
66 }
67
70 {
71 if ( ! m_strDir.IsEmpty() )
72 {
73 m_Remove(m_strDir);
74 m_strDir.Empty();
75 }
76 }
77
82 CStr GetName(void) const
83 {
84 return m_strDir;
85 }
86
92 bool HasThat(void) const
93 {
94 return ! m_strDir.IsEmpty();
95 }
96
103 void Free(void)
104 {
105 if ( ! m_strDir.IsEmpty() )
106 {
107 if ( ! m_Remove(m_strDir) )
108 {
109 throw CDeleteFailureException(::GetLastError());
110 }
111 m_strDir.Empty();
112 }
113 }
114
120 void Detach(void)
121 {
122 m_strDir.Empty();
123 }
124
133 {
134 Free();
136 CStr s = temp.Create();
137 temp.Free();
138 if ( ! ::CreateDirectory(s, NULL) )
139 {
140 s.Empty();
141 }
142 else
143 {
144 m_strDir = s;
145 s += _T("\\");
146 }
147 return s;
148 }
149};
150
151
152
164
165
166
167}; // TNB
ファイルネーム関係のヘッダ
テンポラリファイル関係のヘッダ
[ETC] コピー不可能スーパークラス.
Definition: TnbDef.h:599
削除失敗発生例外
Definition: TnbException.h:269
ファイル名管理クラス
Definition: TnbFileName.h:59
bool Remove(bool boIsAllowUndo=false, bool boIsSilent=true)
[操作] 削除.
Definition: TnbFileName.h:692
bool IsEmpty(void) const
[確認] 空チェック
Definition: TnbStr.h:528
void Empty(void)
[削除] 空化
Definition: TnbStr.h:197
テンポラリディレクトリ管理テンプレートクラス
CTemporaryDirectoryT(void)
コンストラクタ
~CTemporaryDirectoryT(void)
デストラクタ
bool HasThat(void) const
[確認] テンポラリディレクトリ有無確認
void Detach(void)
[操作] 解放.
CStr GetName(void) const
[取得] テンポラリディレクトリ名取得
CStr Create(void)
[操作] 作成.
void Free(void)
[操作] 解放.
テンポラリファイル管理テンプレートクラス
CStr Create(void)
[操作] 作成.
void Free(void)
[操作] 解放.
CTemporaryDirectoryT< 'bnt'> CTemporaryDirectory
テンポラリディレクトリ管理テンプレート
TNB Library
Definition: TnbDoxyTitle.txt:2