Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
FileUtility.h
[詳解]
1// ----------------------------------------------------------------------------
7
8#pragma once
9
10#include "File.h"
11#include "TString.h"
12#include "Array.hpp"
13
14namespace alt
15{
16 class FileUtility;
17
20 enum class ShellOperation : WORD
21 {
22 MOVE = FO_MOVE,
23 COPY = FO_COPY,
24 REMOVE = FO_DELETE,
25 RENAME = FO_RENAME,
26 };
27
30 {
31 public:
33 APIENTRY FileInfo ();
34
36 virtual APIENTRY ~FileInfo ();
37
40 const TString& APIENTRY GetFolderName () const { return _FolderName; };
41
44 const TString& APIENTRY GetFileName () const { return _FileName; };
45
48 const ULONGLONG& APIENTRY GetFileSize () const { return _FileSize.QuadPart; };
49
51
52 private:
55 ULARGE_INTEGER _FileSize;
56 };
57
60 {
61 public:
63 APIENTRY FileInfo1 ();
64
66 APIENTRY ~FileInfo1 ();
67
70 const FILETIME& APIENTRY GetCreateTime () const { return _CreateTime; };
71
74 const FILETIME& APIENTRY GetUpdateTime () const { return _UpdateTime; };
75
78 const FILETIME& APIENTRY GetAccessTime () const { return _AccessTime; };
79
82 const INT& APIENTRY GetAttribute () const { return _Attribute; };
83
87 const BOOL APIENTRY IsReadOnly () const
88 {
89 return _Attribute & FILE_ATTRIBUTE_READONLY ? TRUE : FALSE;
90 };
91
95 const BOOL APIENTRY IsHidden () const
96 {
97 return _Attribute & FILE_ATTRIBUTE_HIDDEN ? TRUE : FALSE;
98 };
99
103 const BOOL APIENTRY IsSystem () const
104 {
105 return _Attribute & FILE_ATTRIBUTE_SYSTEM ? TRUE : FALSE;
106 };
107
111 const BOOL APIENTRY IsDirectory () const
112 {
113 return _Attribute & FILE_ATTRIBUTE_DIRECTORY ? TRUE : FALSE;
114 };
115
119 const BOOL APIENTRY IsArchive () const
120 {
121 return _Attribute & FILE_ATTRIBUTE_ARCHIVE ? TRUE : FALSE;
122 };
123
127 const BOOL APIENTRY IsTemporary () const
128 {
129 return _Attribute & FILE_ATTRIBUTE_TEMPORARY ? TRUE : FALSE;
130 };
131
135 const BOOL APIENTRY IsCompressed () const
136 {
137 return _Attribute & FILE_ATTRIBUTE_COMPRESSED ? TRUE : FALSE;
138 };
139
141
142 private:
144 FILETIME _CreateTime;
145 FILETIME _UpdateTime;
146 FILETIME _AccessTime;
147 };
148
150 {
151 public:
153 APIENTRY FileInfo2 ();
154
156 APIENTRY ~FileInfo2 ();
157
167 const DWORD APIENTRY GetAction () const { return _dwAction; };
168
171 const LONGLONG APIENTRY GetFileID () const { return _FileID; };
172
175 const FILETIME& APIENTRY GetChangeTime () const { return _ChangeTime; };
176
180 const BOOL APIENTRY IsAdded () const
181 {
182 return _dwAction == FILE_ACTION_ADDED ? TRUE : FALSE;
183 };
184
188 const BOOL APIENTRY IsRemoved () const
189 {
190 return _dwAction == FILE_ACTION_REMOVED ? TRUE : FALSE;
191 };
192
196 const BOOL APIENTRY IsModified () const
197 {
198 return _dwAction == FILE_ACTION_MODIFIED ? TRUE : FALSE;
199 };
200
204 const BOOL APIENTRY IsOldName () const
205 {
206 return _dwAction == FILE_ACTION_RENAMED_OLD_NAME ? TRUE : FALSE;
207 };
208
212 const BOOL APIENTRY IsNewName () const
213 {
214 return _dwAction == FILE_ACTION_RENAMED_NEW_NAME ? TRUE : FALSE;
215 };
216
218
219 private:
221 FILETIME _ChangeTime;
222 LONGLONG _FileID;
223 };
224
229 {
230 public:
232 APIENTRY FileUtility () {};
233
235 APIENTRY ~FileUtility () {};
236
237 // ----- ファイル操作
238
244 static BOOL APIENTRY Delete (LPCTSTR name);
245
253 static BOOL APIENTRY Copy (
254 LPCTSTR source, LPCTSTR dest, BOOL bFailIfExists = FALSE);
255
262 static BOOL APIENTRY Move (LPCTSTR source, LPCTSTR dest);
263
269 static TString APIENTRY GetTemporaryFileName (
270 LPCTSTR lpctszPath, LPCTSTR lpctszPrefix, UINT nNumber);
271
272 // ----- ディレクトリ操作
273
279 static BOOL APIENTRY MakeDir (LPCTSTR name);
280
288 static BOOL APIENTRY RemoveDir (LPCTSTR name);
289
295 static BOOL APIENTRY SetCurrentDir (LPCTSTR name);
296
299 static TString APIENTRY GetCurrentDir ();
300
303 static TString APIENTRY GetTemporaryPath ();
304
308 static TString APIENTRY GetAbsolutePath (LPCTSTR lpctszRelativePath);
309
315 static BOOL APIENTRY IsDirectory (LPCTSTR name);
316
317 // ----- ファイル・ディレクトリ共用操作
318
324 static BOOL APIENTRY IsExist (LPCTSTR name);
325
331 static skeleton::Array<FileInfo1> APIENTRY Find (
332 LPCTSTR target, LPCTSTR name, BOOL bRecurse = FALSE);
333
334 static VOID APIENTRY Find2 (
335 LPCTSTR target, LPCTSTR name, BOOL bRecurse,
337
343 static skeleton::Array<FileInfo2> APIENTRY DirectoryWatch (
344 LPCTSTR lpctszWatchDirectory, DWORD dwTimeout);
345
346#if defined (_MSC_VER) && (_MSC_VER >= 1910) // VS2017 over
347
357 static BOOL APIENTRY MakeSymbolicLink (
358 LPCTSTR source, LPCTSTR link, BOOL isFile = TRUE);
359
360#endif
368 static BOOL APIENTRY MakeHardLink (LPCTSTR source, LPCTSTR link);
369
370 static INT APIENTRY SHFileOperations (
371 ShellOperation operation, LPCTSTR lpctszFrom, LPCTSTR lpctszTo);
372 };
373}
可変配列に関するクラス
#define DLL_DECLSPEC
Definition: framework.h:17
ファイルIOに関するWindowsAPIを集約したクラス
文字列に関するWindowsAPIを集約したクラス
FileUtility::Find()が返すファイル情報
Definition: FileUtility.h:60
const FILETIME &APIENTRY GetUpdateTime() const
ファイル更新日時の取得
Definition: FileUtility.h:74
const BOOL APIENTRY IsSystem() const
システムファイルか否か
Definition: FileUtility.h:103
const FILETIME &APIENTRY GetAccessTime() const
ファイルアクセス日時の取得
Definition: FileUtility.h:78
const BOOL APIENTRY IsHidden() const
隠しファイルか否か
Definition: FileUtility.h:95
const FILETIME &APIENTRY GetCreateTime() const
ファイル作成日時の取得
Definition: FileUtility.h:70
FILETIME _AccessTime
Definition: FileUtility.h:146
FILETIME _CreateTime
Definition: FileUtility.h:144
const BOOL APIENTRY IsArchive() const
アーカイブか否か
Definition: FileUtility.h:119
friend FileUtility
Definition: FileUtility.h:140
const BOOL APIENTRY IsCompressed() const
圧縮ファイルか否か
Definition: FileUtility.h:135
const BOOL APIENTRY IsDirectory() const
ディレクトリか否か
Definition: FileUtility.h:111
const INT &APIENTRY GetAttribute() const
ファイル属性の取得
Definition: FileUtility.h:82
FILETIME _UpdateTime
Definition: FileUtility.h:145
const BOOL APIENTRY IsTemporary() const
中間ファイルか否か
Definition: FileUtility.h:127
const BOOL APIENTRY IsReadOnly() const
読み取り専用か否か
Definition: FileUtility.h:87
const LONGLONG APIENTRY GetFileID() const
ファイルIDの取得
Definition: FileUtility.h:171
const BOOL APIENTRY IsNewName() const
名前を変更されたか(新ファイル名)
Definition: FileUtility.h:212
const DWORD APIENTRY GetAction() const
ファイル監視結果を取得
Definition: FileUtility.h:167
FILETIME _ChangeTime
Definition: FileUtility.h:221
LONGLONG _FileID
Definition: FileUtility.h:222
const BOOL APIENTRY IsOldName() const
名前を変更されたか(旧ファイル名)
Definition: FileUtility.h:204
const FILETIME &APIENTRY GetChangeTime() const
ファイル変更検知日時の取得
Definition: FileUtility.h:175
friend FileUtility
Definition: FileUtility.h:217
const BOOL APIENTRY IsRemoved() const
削除されたか
Definition: FileUtility.h:188
const BOOL APIENTRY IsAdded() const
追加されたか
Definition: FileUtility.h:180
const BOOL APIENTRY IsModified() const
変更されたか
Definition: FileUtility.h:196
ファイル情報共通クラス
Definition: FileUtility.h:30
ULARGE_INTEGER _FileSize
Definition: FileUtility.h:55
TString _FileName
Definition: FileUtility.h:54
const TString &APIENTRY GetFolderName() const
フォルダ名の取得
Definition: FileUtility.h:40
const TString &APIENTRY GetFileName() const
ファイル名の取得
Definition: FileUtility.h:44
const ULONGLONG &APIENTRY GetFileSize() const
ファイルサイズの取得
Definition: FileUtility.h:48
TString _FolderName
Definition: FileUtility.h:53
friend FileUtility
Definition: FileUtility.h:50
ファイルハンドルを伴わないファイルIOに関するWindowsAPIを 集約したクラス
Definition: FileUtility.h:229
APIENTRY ~FileUtility()
デストラクタ
Definition: FileUtility.h:235
APIENTRY FileUtility()
コンストラクタ
Definition: FileUtility.h:232
文字列に関するWindowsAPIを集約したクラス
Definition: TString.h:17
プロジェクト共通基底クラス
サイズ可変の配列を具現したクラス
Definition: Array.hpp:20
Definition: DBLibrary.h:12
ShellOperation
SHFILEOPSTRUCT.wFuncに渡す、値の列挙
Definition: FileUtility.h:21