{_WIN32_FIND_DATA結構:用于存取文件的属性信息,用于保存由FindFirstFile和FindNextFile找到文件的信息}
//原定義
typedef struct _WIN32_FIND_DATA {
FILETIME ftCreationTime; // 文件创建时间
FILETIME ftLastAccessTime; // 文件最后一次访问时间
FILETIME ftLastWriteTime; // 文件最后一次修改时间
DWORD nFileSizeHigh; // 文件长度高32位
DWORD nFileSizeLow; // 文件长度低32位
DWORD dwReserved0; // 系统保留
DWORD dwReserved1; // 系统保留
TCHAR cFileName[ MAX_PATH ]; // 长文件名
TCHAR cAlternateFileName[ 14 ]; // 8.3格式文件名
} WIN32_FIND_DATA;
其中dwFileAttributes(文件属性)有如下:FILE_ATTRIBUTE_ARCHIVE、FILE_ATTRIBUTE_COMPRESSED、FILE_ATTRIBUTE_DIRECTORY、FILE_ATTRIBUTE_HIDDEN、FILE_ATTRIBUTE_NORMAL、FILE_ATTRIBUTE_OFFLINE、FILE_ATTRIBUTE_READONLY、FILE_ATTRIBUTE_SYSTEM、FILE_ATTRIBUTE_TEMPORARY。
//1、判斷是否為文件夾,首先用FindFirstFile得到文件夾的信息,讀取該文件的屬性是否為FILE_ATTRIBUTE_DIRECTORY即可判斷。
{FindFirstFile 聲明}
HANDLE FindFirstFile(
LPCTSTR lpFileName, // 欲搜索的文件名
LPWIN32_FIND_DATA lpFindFileData // 装载与找到的文件有关的信息
);
{Delphi Example}
var
aFindFileData: TWIN32FindData;
Handle: THandle;
begin
pPath1 := 'E:\bb\cc\dd';
Handle := FindFirstFile(PChar(pPath1),aFindFileData);
if aFindFileData.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY then
ShowMessage(pPath1 + '是文件夾');
Windows.FindClose(Handle);
end;
//2、通過GetFileAttributes得到文件或文件夾的屬性信息,與FILE_ATTRIBUTE_DIRECTORY對比即可判斷。
{GetFileAttributes 聲明}
DWORD GetFileAttributes(
LPCTSTR lpFileName // 欲获取属性的一个文件的名字
);
{Delphi Example}
var
Code: Integer;
pPath1: string;
begin
pPath1 := 'E:\bb\cc\dd\';
Code := GetFileAttributes(PChar(pPath1 ));
if FILE_ATTRIBUTE_DIRECTORY = Code then
ShowMessage(pPath1 + '是文件夾');
end;