2

リストからアイテムを削除しようとしていますが、次のxmlがあります

<Batch PreCalc='TRUE' OnError='Continue'>
    <Method ID='1' Cmd='Delete'>\
        <Field Name='ID'>185</Field>       
    </Method>
</Batch>

これは次のエラーを返しています

0x81020030 - Invalid file name

The file name you specified could not be used.  It may be the name of
an existing file or directory, or you may not have permission to
access the file.

ID を使用するだけでなく、fileName を提供する必要があるようです。これを行う私の試みは、これまでのところ失敗しています。

アップデート

XML は次の形式にする必要があると思います。

<Batch PreCalc='TRUE' OnError='Continue'>
    <Method ID='1' Cmd='Delete'>
        <Field Name='ID'>185</Field>
        <Field Name="FileRef">http://sharepoint.mycompany.com/testsite/lib/flying spider  2009-09-03  P.jpg</Field>       
    </Method>
</Batch>

エラーはスローされませんが、何も削除されていません。

更新 2

アレックスが返信した後、URL のスペースを削除し、タブと改行を削除しました。これは問題を引き起こす可能性があるためです。

<Batch PreCalc='TRUE' OnError='Continue'>
  <Method ID='1' Cmd='Delete'>
    <Field Name='ID'>185</Field>
    <Field Name="FileRef">http://sharepoint.mycompany.com/testsite/lib/flying%20spider%202009-09-03  P.jpg</Field>
  </Method>
</Batch>

ここでもエラーはスローされません。

FileRef を使用する必要がありますか? FileLeafRef? ファイル名を使用する必要がありますか? 相対パス?ファイルへの URL?

これが重要な場合、これは画像ライブラリです

4

3 に答える 3

1

これも試して、

SharePoint リストなどからアイテムを削除する

于 2009-10-06T05:26:01.247 に答える
1

これはおそらく、ファイル名にスペースが含まれていて、SharePoint がアイテムを見つけられないためです。各スペースを に置き換えてみました%20か?

MSDN How to: Update List Itemsの記事によると:

指定されたアイテムが存在しない場合、UpdateListItems メソッドのポストはサイレントに失敗します。

これが機能しない場合は、要素にListVersionおよびViewName属性を指定してみてください。私が見たBatchすべての例は、これらを指定しています。

于 2009-09-03T13:05:20.163 に答える
1

最近、同じ問題に遭遇しました。以下のように、削除するアイテムへの相対パスと id を含める必要があります。

<Batch OnError="Return">
  <Method ID="1">
    <Field Name="ID">123456</Field>
    <Field Name="FileRef">sites/library/folderNameOrFileName</Field>
  </Method>
</Batch>
于 2014-03-24T10:58:31.237 に答える