Я пытаюсь прочитать свойство тега файлов, расположенных в папке на сайте SharePoint. У меня есть код, который работает при использовании его против локальных каталогов. Однако после того, как я изменил эти пути к каталогам SharePoint, код не будет работать, потому что внезапно он действует так, как будто эти файлы не имеют тегов. Кто-нибудь может объяснить это мне, пожалуйста? Мой код ниже:
Dim path As String
Dim FSO As New FileSystemObject
Dim obj_folder As Object
Dim obj_subfolder As Object
Dim subfolders As Object
Dim oDetails As Object
Dim file As Object
Dim lrow As Long
Dim i As Long
Dim x As Long
Dim y As Long
Dim z As Long
path = "\\sharepointpath.com\somefolder\blah folder\"
Set FSO = CreateObject("Scripting.filesystemobject")
Set obj_folder = FSO.GetFolder(path)
Set subfolders = obj_folder.subfolders
lrow = ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
i = 1
y = 0
z = 0
For x = 1 to 1000000
For Each obj_subfolder In obj_folder.subfolders
For Each file In obj_subfolder.FILES
Set oDetails = GetDetails(file.Path)
Debug.Print oDetails("Tags")
If Instr(1, oDetails("Tags"), "EDGE") > 0 Then
z = z + 1
End If
Next file
Next obj_subfolder
Next x
End Sub
------------------------------------------------------------------------
Public Function GetDetails(sPath as String)
Dim sFolderName As Variant
Dim sFileName As Variant
Dim oShell As Object
Dim oFolder As Object
Dim oFile As Object
Dim oDetails As Object
Dim i As Long
Dim sName As Variant
Dim sValue As Variant
Call SplitFullPath(sPath, sFolderName, sFileName)
Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.Namespace(sFolderName)
Set oFile = oFolder.ParseName(sFileName)
Set oDetails = CreateObject("Scripting.Dictionary")
For i = 0 To 511
sName = oFolder.GetDetailsOf(oFolder.Items, i)
sValue = oFolder.GetDetailsOf(oFile, i)
If sName <> "" And sValue <> "" Then
oDetails(sName) = sValue
End If
Next
Set GetDetails = oDetails
---------------------------------------------------------------------------
Public Sub SplitFullPath(sPath As String, sFolderName As Variant, sFileName As Variant)
With CreateObject("Scripting.FileSystemObject")
If Not .FileExists(sPath) Then
Exit Sub
End If
sFolderName = .GetParentFolderName(sPath)
sFileName = .GetFileName(sPath)
End With
End Sub
Поэтому, когда я запускаю этот код с использованием локального пути, моя отладка показывает мне теги для каждого файла, как и ожидалось. Однако, когда я запускаю этот код с использованием пути SharePoint, моя отладка показывает пустую строку вместо тегов файла (я использую одни и те же файлы в обоих местах, поэтому они должны быть одинаковыми). Может кто-нибудь, пожалуйста, помогите? Спасибо!