Q&A

  • [급]api함수에 관해서...
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;



1  COMMENTS
  • Profile
    참이슬 2001.06.30 04:05
    uses 절에 ShellApi를 추가해요~



    초보탈출 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;

    >