api함수로 파일의 정보를 알아보려구 하는 중에 아래와 같은 부분적인소스를 구했읍니다. 그런데 에러가 나네요... TSHFileInfo에서 에러가 나는데....
interface.. uses 에 추가해야 하는 것좀 갈켜주세요...
api함수 이용시 uses에 추가해야 하는 것이 뭔지 몰라서....
procedure TForm1.GetFileInfo(FileName: String);
var
SHFinfo: TSHFileInfo;
FindData: TWin32FindData;
FindHandle :THandle;
begin
L_FileName.Caption := ExtractFileName(FileName); // 파일명(Name)
ShGetFileInfo(PChar(FileName), 0, SHFinfo, SizeOf(SHFinfo), // 파일종류만 알아낸다
SHGFI_TYPENAME);
L_Filetype.Caption := SHFinfo.szTypeName; // 파일종류(Type)
FindHandle := Windows.FindFirstFile(PChar(FileName), FindData);
try
L_Filesize.Caption := FloatToStr(Trunc(FileSize(FindData.nFileSizeHigh, FindData.nFileSizeLow) / 1024))+' KB ('+
IntToStr(FileSize(FindData.nFileSizeHigh, FindData.nFileSizeLow))+' Bytes)';
OldAttributes := FileGetAttr(FileName); // 파일의 속성(attribute)
CB_ReadOnly.Checked := (OldAttributes and faReadOnly) = faReadOnly;
CB_Archive.Checked := (OldAttributes and faArchive) = faArchive;
CB_System.Checked := (OldAttributes and faSysFile) = faSysFile;
CB_Hidden.Checked := (OldAttributes and faHidden) = faHidden;
L_Created.Caption := GetLocalTime(FindData.ftCreationTime); // 파일생성일(Created)
L_Modified.Caption := GetLocalTime(FindData.ftLastWriteTime); // 파일변경일(Modified)
L_LastAccess.Caption := GetLocalTime(FindData.ftLastAccessTime); // 파일접근일(LastAccess)
finally
Windows.FindClose(FindHandle);
end;
end;
초보탈출 wrote:
> api함수로 파일의 정보를 알아보려구 하는 중에 아래와 같은 부분적인소스를 구했읍니다. 그런데 에러가 나네요... TSHFileInfo에서 에러가 나는데....
> interface.. uses 에 추가해야 하는 것좀 갈켜주세요...
> api함수 이용시 uses에 추가해야 하는 것이 뭔지 몰라서....
>
>
> procedure TForm1.GetFileInfo(FileName: String);
> var
> SHFinfo: TSHFileInfo;
> FindData: TWin32FindData;
> FindHandle :THandle;
> begin
> L_FileName.Caption := ExtractFileName(FileName); // 파일명(Name)
>
> ShGetFileInfo(PChar(FileName), 0, SHFinfo, SizeOf(SHFinfo), // 파일종류만 알아낸다
> SHGFI_TYPENAME);
> L_Filetype.Caption := SHFinfo.szTypeName; // 파일종류(Type)
>
> FindHandle := Windows.FindFirstFile(PChar(FileName), FindData);
> try
> L_Filesize.Caption := FloatToStr(Trunc(FileSize(FindData.nFileSizeHigh, FindData.nFileSizeLow) / 1024))+' KB ('+
> IntToStr(FileSize(FindData.nFileSizeHigh, FindData.nFileSizeLow))+' Bytes)';
>
> OldAttributes := FileGetAttr(FileName); // 파일의 속성(attribute)
> CB_ReadOnly.Checked := (OldAttributes and faReadOnly) = faReadOnly;
> CB_Archive.Checked := (OldAttributes and faArchive) = faArchive;
> CB_System.Checked := (OldAttributes and faSysFile) = faSysFile;
> CB_Hidden.Checked := (OldAttributes and faHidden) = faHidden;
>
> L_Created.Caption := GetLocalTime(FindData.ftCreationTime); // 파일생성일(Created)
> L_Modified.Caption := GetLocalTime(FindData.ftLastWriteTime); // 파일변경일(Modified)
> L_LastAccess.Caption := GetLocalTime(FindData.ftLastAccessTime); // 파일접근일(LastAccess)
> finally
> Windows.FindClose(FindHandle);
> end;
> end;
>