【问题标题】:How to get the names of files stored in a particular folder on iManage?如何获取存储在 iManage 上特定文件夹中的文件的名称?
【发布时间】:2018-06-24 14:19:15
【问题描述】:

VBA 中是否有任何方法可以通过引用 FolderID 列出存储在 Worksite/iManage 上特定文件夹中的文件?

我想要实现的是获取所有文件并将它们列在 A 列的电子表格中,就像您可以从普通磁盘目录中获取文件夹的内容一样。

在 imanage 中,文件名为 iManDocument.Description。

以下是我到目前为止的想法。我不知道如何继续前进:(

Dim dmsRoot As IManDMS
Dim dmsSession As IManSession
Dim dmsDatabase As IManDatabase
Dim iFile As IManDocument
Dim iFdr as ImanFolder
DimFname as String

Const ServerName As String = "DMSname"
Const DatabaseName As String = "DatabaseName"
Const ifID as long = "123456"

Set dmsRoot = New ManDMS
Set dmsSession = dmsRoot.Sessions.Add(ServerName)
dmsSession.TrustedLogin

Set dmsDatabase = dmsSession.Databases.ItemByName(DatabaseName)

Set iFlr = dmsDatabase.GetFolder(ifID)

我通常会做的是创建一个循环

For each iFile in iFlr

  Fname = IFile.Description

并将名称一一放入单元格中,但 ImanFolder 似乎没有此类属性。

非常感谢您的帮助。

【问题讨论】:

    标签: vba directory imanage


    【解决方案1】:

    IManage 文件夹有一个 Contents 属性,其中包含存储在其中的项目。您可以枚举内容,在可能的情况下转换为 IManDocument,并从中获取属性。类似于以下的东西应该可以工作:

    Dim folderItem As IManContent
    Dim currentImanDoc As IManDocument
    
    .... Get your folder  
    
    For Each folderItem In currentIManFolder.Contents
        FName = folderItem .Description
    Next
    

    【讨论】:

    • 嘿。非常感谢您的时间和指导。我尝试了代码,但函数 TryCast 有问题。 VBA 无法识别它。我浏览了对象浏览器,但找不到类似 DirectCast 或 CType 的东西。我在工作中使用 Excel 2010,但从未使用过 TryCast。这是否需要额外的库引用?另外,我怀疑这是否会征用文件夹中的所有项目。有没有办法在没有 TryCast 方法的情况下重写代码?
    • 抱歉,我实际上是在 VB.NET 中编写的,因为这是我必须处理的。我会考虑一下真正的 VBA 等价物。
    • 哦。这就是为什么我有点困惑。再次感谢您的及时回复。 VBA 实际上是我从一开始就追求的东西。我希望我们正在处理的代码成为更大程序的一部分,但仍然在 VBA 中;-)
    • 你认为编写类模块是个好主意吗?据我了解您想与 TryCast 一起检查 folderItem 是否“适合” IManDocument 并且可以以某种方式实现到 IManDocumented 对象中的代码?
    • 这对我来说可能是矫枉过正。我将使用 VBA 版本更新代码,您所拥有的就差不多了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多