2016-03-21 55 views
1

我嘗試從列表中的文件夾中獲取文件夾中的某些文件。爲此,我嘗試使用CalmQueryRowLimit,因爲我在該文件夾中有很多文件。CalmQuery <RowLimit>無法正常工作

但是當我執行代碼時,看起來我的行限制不起作用。

$list = $context.Web.Lists.GetByTitle($ListName) 
$context.Load($list) 

$query = New-Object Microsoft.SharePoint.Client.CamlQuery 
$query.ViewXml = "<View Scope='RecursiveAll'> " + 
       "<RowLimit>5000</RowLimit>"+ 
       "<Query>" + 
        "<OrderBy>"+ 
        "<FieldRef Name='FileLeafRef' Ascending='True' />"+ 
        "</OrderBy>"+ 
        "<Where>" + 
         "<Eq>"+ 
         "<FieldRef Name='FileLeafRef' />"+ 
         "<Value Type='File'>EDMS API/APICAL Invoice</Value>"+ 
         "</Eq>"+ 
        "</Where>"+ 
       "</Query>"+ 
      "</View>" 
$listItems = $list.getItems($query) 
$context.Load($listItems) 
$context.ExecuteQuery() 

回答

0

最有可能它不是一個RowLimit問題,而是Query表達式本身。查詢:

<Where> 
    <Eq> 
     <FieldRef Name='FileLeafRef' /> 
     <Value Type='File'>{value}</Value> 
    </Eq> 
</Where> 

回報項目的名稱相匹配{value},這反過來又不會返回位於該網址在{value}指定一個特定文件夾下的文件。

如果您只想包含位於特定文件夾中的文件,您可以考慮至少以下兩種方法。

假設以下結構:

News (sub site) 
    | 
    Documents (library) 
     | 
     Archive (folder) 

然後下面的實施例說明了如何包括從Archive文件夾項目:

集文件夾通過CamlQuery.FolderServerRelativeUrl屬性:

$query = New-Object Microsoft.SharePoint.Client.CamlQuery 
$query.ViewXml = "<View Scope='RecursiveAll'> " + 
       "<RowLimit>20</RowLimit>"+ 
       "<Query>" + 
        "<OrderBy>"+ 
        "<FieldRef Name='FileLeafRef' Ascending='True' />"+ 
        "</OrderBy>"+ 
       "</Query>"+ 
      "</View>" 
$query.FolderServerRelativeUrl = "/News/Documents/Archive" 
$listItems = $list.getItems($query) 
$context.Load($listItems) 
$context.ExecuteQuery() 

通過0123設置文件夾財產

$query = New-Object Microsoft.SharePoint.Client.CamlQuery 
$query.ViewXml = "<View Scope='RecursiveAll'> " + 
       "<RowLimit>20</RowLimit>"+ 
       "<Query>" + 
        "<OrderBy>"+ 
        "<FieldRef Name='FileLeafRef' Ascending='True' />"+ 
        "</OrderBy>"+ 
        "<Where>" + 
         "<Eq>"+ 
         "<FieldRef Name='FileDirRef' />"+ 
         "<Value Type='File'>/News/Documents/Archive</Value>"+ 
         "</Eq>"+ 
        "</Where>"+ 
       "</Query>"+ 
      "</View>" 
$listItems = $list.getItems($query) 
$context.Load($listItems) 
$context.ExecuteQuery() 
+1

謝謝,現在工作正常。 –