我正在用 Java 编写一个应用程序,它必须报告 SharePoint 2007 文档库中的所有可用文件。该应用程序使用来自 korecky (Project Home) 的 java sharepoint 库。一切正常,除了几个文件信息之外我没有得到文件大小。
具体来说,一个请求被发送到调用 GetListItems 方法的 List.asmx 网络服务。
请求如下所示:
<QueryOptions>
<ViewAttributes IncludeRootFolder="True" Scope="RecursiveAll"/>
<IncludeMandatoryColumns>
TRUE
</IncludeMandatoryColumns>
<DateInUtc>
TRUE
</DateInUtc>
</QueryOptions>
根据网络服务响应中的几个论坛,应该有一个名为 ows_File_x0020_Size 的可用字段,它应该包含一个表示文件大小的 int,但它丢失了。是否有人知道需要如何修改请求以接收文件大小?
最佳答案
您需要说出您要调用的字段(在 ViewFields 中)。最终请求应如下所示:
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<listName>My Documents List</listName>
<viewName></viewName>
<query><Query></Query></query>
<viewFields>
<ViewFields Properties="True">
<FieldRef Name="FileLeafRef"></FieldRef>
<FieldRef Name="File_x0020_Size"></FieldRef>
</ViewFields>
</viewFields>
<rowLimit>0</rowLimit>
<queryOptions>
<QueryOptions>
<DateInUtc>True</DateInUtc>
<Paging ListItemCollectionPositionNext=""></Paging>
<ViewAttributes Scope="Recursive"></ViewAttributes>
<IncludeAttachmentUrls>True</IncludeAttachmentUrls>
<IncludeMandatoryColumns>False</IncludeMandatoryColumns>
<ExpandUserField>False</ExpandUserField>
</QueryOptions>
</queryOptions>
</GetListItems>
</soap:Body>
</soap:Envelope>
关于java - 如何使用 Java 通过 web 服务检索 Sharepoint 文档库中文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15831063/