gpt4 book ai didi

vba - 通过delphi检索扩展文件属性

转载 作者:行者123 更新时间:2023-12-03 15:54:38 25 4
gpt4 key购买 nike

当您在 Windows 资源管理器中右键单击某个文件并从菜单中选择“属性”时,将出现一个对话框,显示该文件的基本属性。

我正在尝试获取文件夹中 Word 文件的这些属性(关键字、注释、标题...)。

我修改了在某处找到的代码,它在 vba(MSWord Office 宏)中运行良好:

Private Sub CommandButton1_Click()

Dim arrHeaders(35)

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\Scripts")

For i = 0 To 34
arrHeaders(i) = objFolder.GetDetailsOf(objFolder.Items, i)
Next

For Each FileName In objFolder.Items
For i = 0 To 34
MsgBox i & vbTab & arrHeaders(i) & ": " & objFolder.GetDetailsOf(FileName, i)
Next
Next

End Sub

所以我试图让它在delphi的object pascal中工作。我仍然缺少一些语法。

我能够转换一半的语法:

procedure TFormAFDetails.Button1Click(Sender: TObject);
var
ObjShell, ObjFolder : Variant;
FileProp : array of string;
FName : String;
I, J : Integer;
begin
SetLength(FileProp, 35);
ObjShell := CreateOleObject('Shell.Application');
ObjFolder := ObjShell.NameSpace('C:\Scripts');

for I := 0 to 34 do
FileProp[I] := ObjFolder.GetDetailsOf(ObjFolder.Items,I);

for FName in ObjFolder.Items do
begin
for J := 0 to 34 do
ShowMessage(FileProp[J]+' : '+ObjFolder.GetDetailsOf(FName,J));
end;
end;

“for - in - do”部分不会像它所说的那样工作

//for -in statement can't operate on collection type 'variant' 

谁能帮帮我吗?

最佳答案

您提出的问题的答案是:

for I := 0 to ObjFolder.Items.Count-1 do
begin
FName := ObjFolder.Items.Item(I);
....
end;

不过代码看起来有点奇怪,尤其是使用神奇值 35。

关于vba - 通过delphi检索扩展文件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23272638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com