52 ::GetTempPath(MAX_PATH, strPath.
GetBuffer(MAX_PATH));
57 strPath = m_tempFolder;
59 const static TCHAR tc[5] = { (PFIX&0xFF), ((PFIX>>8)&0xFF), ((PFIX>>16)&0xFF), ((PFIX>>24)&0xFF), 0 };
60 ::GetTempFileName(strPath, tc, 0, m_targetFile.
GetBuffer(MAX_PATH));
62 return ! m_targetFile.
IsEmpty();
81 ::DeleteFile(m_targetFile);
102 return ! m_targetFile.
IsEmpty();
113 if ( ! m_targetFile.
IsEmpty() )
115 if ( ! ::DeleteFile(m_targetFile) )
119 m_targetFile.
Empty();
130 m_targetFile.
Empty();
144 if ( ! m_targetFile.
IsEmpty() )
146 HANDLE h = ::CreateFile(m_targetFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
147 if ( h == INVALID_HANDLE_VALUE )
152 DWORD size = ::GetFileSize(h, &dw);
156 BOOL boRc = ::ReadFile(h, vb.
GetBuffer(size), size, &dw, NULL);
157 if ( ! boRc || dw != size )
192 if ( m_Create() && size > 0 )
194 HANDLE h = ::CreateFile(m_targetFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
195 if ( h == INVALID_HANDLE_VALUE )
200 ::SetFilePointer(h,
ToDword(size), &l, FILE_BEGIN);
201 VERIFY( ::SetEndOfFile(h) );
218 if ( m_Create() && size >= 0 )
220 HANDLE h = ::CreateFile(m_targetFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, NULL);
221 if ( h == INVALID_HANDLE_VALUE )
226 VERIFY( ::WriteFile(h, P,
ToDword(size), &dw, NULL) );
252 m_tempFolder = pFolder;
265 if (
ToInt(::GetFileAttributes(lpszFile)) == -1 )
269 m_targetFile = lpszFile;
bool IsEmpty(void) const
[確認] 空チェック
void ReleaseBuffer(void)
[操作] 割り当てたバッファを開放.
TYP * GetBuffer(size_t iLength=0)
[操作] 書き込みバッファ要求.
CStr Create(size_t size)
[操作] 作成.
bool HasThat(void) const
[確認] テンポラリファイル有無確認
void SetTempraryFolder(LPCTSTR pFolder)
[設定] テンポラリフォルダ指定.
CTemporaryFileT(void)
コンストラクタ
CByteVector Release(void)
[操作] 解放.
CStr Create(size_t size, LPCVOID P)
[操作] 作成.
void Detach(void)
[操作] 解放.
CStr GetName(void) const
[取得] テンポラリファイル名取得
CStr Create(void)
[操作] 作成.
CStr Attach(LPCSTR lpszFile)
[操作] アタッチ.
CStr Create(const ISequenceCollectionT< BYTE > &vb)
[操作] 作成.
~CTemporaryFileT(void)
デストラクタ.
TYP * GetBuffer(size_t size=0)
[操作] データアドレス取得
void ReleaseBuffer(void)
[操作] データの管理を元に戻す.
virtual bool SetSize(size_t size)
[操作] サイズ指定
CTemporaryFileT< 'bnt'> CTemporaryFile
テンポラリファイル管理テンプレート
DWORD ToDword(LPCSTR lpsz, int iBase=10)
[変換] INT変換(ASCII/SJIS用).
int ToInt(LPCSTR lpsz, int iBase=10)
[変換] INT変換(ASCII/SJIS用).
virtual const TYP * ReferBuffer(void) const =0
[取得] データアドレス取得.
virtual size_t GetSize(void) const =0
[取得] 要素数取得.