Folder.GetDetailsOf 方法

检索有关文件夹中的项的详细信息。 例如,其大小、类型或上次修改的时间。

语法

retVal = Folder.GetDetailsOf(
  vItem,
  iColumn
)

参数

vItem

类型: Variant

要为其检索信息的项。 这必须是 FolderItem 对象。

iColumn

类型: 整数

指定要检索的信息的 Integer 值。 项的可用信息取决于显示该项的文件夹。 此值对应于 Shell 视图中显示的从零开始的列号。 对于文件系统中的项,此值可以是以下值之一:

(0)

检索项的名称。

(1)

检索项的大小。

(2)

检索项的类型。

(3)

检索上次修改项的日期和时间。

(4)

检索项的属性。

(-1)

检索项的信息提示信息。

返回值

类型: BSTR*

包含检索到的详细信息的字符串。

备注

注意

并非所有方法都是针对所有文件夹实现的。 例如,没有为 控制面板 文件夹 (CSIDL_CONTROLS) 实现 ParseName 方法。 如果尝试调用未实现的方法,则会引发0x800A01BD (十进制 445) 错误。

 

示例

以下示例使用 GetDetailsOf 检索名为 Clock.avi 的文件的类型。 显示 JScript、VBScript 和 Visual Basic 的正确用法。

Jscript:

<script language="JScript">
    function fnGetDetailsOfJ()
    {
        var objShell = new ActiveXObject("shell.application");
        var objFolder = new Object;
        
        objFolder = objShell.NameSpace("C:\\WINDOWS");
        if (objFolder != null)
        {
            var objFolderItem = new Object;

            objFolderItem = objFolder.ParseName("clock.avi");
            if (objFolderItem != null)
            {
                var objInfo = new Object;

                objInfo = objFolder.GetDetailsOf(objFolderItem, 2);
            }
        }
    }
</script>

VBScript:

<script language="VBScript">
    function fnGetDetailsOfVB()
        dim objShell
        dim objFolder
        
        set objShell = CreateObject("shell.application")
        set objFolder = objShell.NameSpace("C:\WINDOWS")

        if (not objFolder is nothing) then
            dim objFolderItem

            set objFolderItem = objFolder.ParseName("clock.avi")

            if (not objFolderItem Is Nothing) then
                dim objInfo
                        
                objInfo = objFolder.GetDetailsOf(objFolderItem, 2)
            end if
            
            set objFolderItem = nothing
        end if
        
        set objFolder = nothing
        set objShell = nothing
    end function
</script>

Visual Basic:

Private Sub btnGetDetailsOf_Click()
    Dim objShell  As Shell
    Dim objFolder As Folder

    Set objShell = New Shell
    Set objFolder = objShell.NameSpace("C:\WINDOWS")
    
    If (Not objFolder Is Nothing) Then
        Dim objFolderItem As FolderItem
        Set objFolderItem = objFolder.ParseName("clock.avi")
   
        If (Not objFolderItem Is Nothing) Then
            Dim szItem As String
            szItem = objFolder.GetDetailsOf(objFolderItem, 2)
        End If
        
        Set objFolderItem = Nothing
    End If
    
    Set objFolder = Nothing
    Set objShell = Nothing
End Sub

要求

要求
最低受支持的客户端
Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Shlobj_core.h (包括 Shldisp.h)
IDL
Shldisp.idl
DLL
Shell32.dll (4.71 或更高版本)