2013-05-06 187 views
0

我不知道我在做什麼錯,我無法刪除文件,我正在使用控制檯應用程序,SPFile.Delete()方法沒有任何作用。Sharepoint從文檔庫中刪除文件

下面是一些代碼:

for (int ii = web.Folders[url + documentsfolder].ItemCount - 1; ii >= 0; ii--) 
         { 
          SPFile file = web.GetFile(web.Folders[url + documentsfolder].Files[ii].UniqueId); 
          if (file.Exists) 
          { 
           file.Delete(); 
          } 

         } 

它不會拋出異常。它只停在第一個文件中,我不知道爲什麼。

希望你能幫助

+0

我知道它停止在第一個文件,因爲我把一些console.writeline()。我也知道它很好的參考,因爲我打印的文件名稱和URL和它的工作 – 2013-05-06 14:06:29

+0

沒關係,它的工作,它只需要每個文件1分鐘 – 2013-05-06 14:19:25

回答

2

你好這裏是刪除文件夾或文件共享文件的代碼片段。這可能會讓您知道如何使用適當的命令DeleteItemById進行刪除。

$web = Get-SPWeb -Identity "http://sharepoint2010/myweb/" 
$list = $web.GetList("http://sharepoint2010/myweb/Shared%20Documents/") 

function ProcessFolder { 
    param($folderUrl) 
    $folder = $web.GetFolder($folderUrl) 
    foreach ($file in $folder.Files) { 

     #Delete file by deleting parent SPListItem 
     $list.Items.DeleteItemById($file.Item.Id) 
    } 
} 

#Collect files to delete 
ProcessFolder($list.RootFolder.Url) 
#Download files in folders 
foreach ($folder in $list.Folders) { 
    ProcessFolder($folder.Url) 
} 

#Delete folders 
foreach ($folder in $list.Folders) { 
    try { 
     $list.Folders.DeleteItemById($folder.ID) 
    } 
    catch { 
     #Deletion of parent folder already deleted this folder 
     #I really hate this 
    } 
}