0

我不知道我做错了什么,我无法删除文件,我正在使用控制台应用程序,方法 SPFile.Delete() 什么都不做。

这是一些代码:

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();
                            }

                        }

它不会抛出异常。它只是停在第一个文件中,我不知道为什么。

希望你能帮忙

4

1 回答 1

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
    }
}
于 2013-05-07T07:21:30.060 回答