2

WebDAV リダイレクタを使用して、SharePoint リポジトリのファイルを編集しています。この方法でファイルを保存するたびに、以前のオブジェクトを置き換える新しいオブジェクトが取得されるようです。これにより、すべてのバージョン履歴が失われます。

ファイルを開くことは、CreateFile を介して次のように行われています。

filename - CreateFile への読み取り専用呼び出しに使用されるものと同じ (動作)

DesiredAccess: GENERIC_READ | GENERIC_WRITE

dwShareMode: FILE_SHARE_READ SecurityHandle: 長さは設定されていますが、他の 2 つのフィールドは 0 です

dwCreationDisposition: OPEN_EXISTING dwFlagsAndAttributes: FILE_ATTRIBUTE_NORMAL

hTemplateFile: NULL

この呼び出しによって返されたハンドルにファイルを書き込んだ後、このファイルのリスト項目を取得すると、オブジェクト番号 (ID=) がインクリメントされています。また、この ID 番号は、リスト アイテムの各フィールドの先頭に追加されているようです (実際のデータとはシーケンス "#;" で区切られています)。

この ID 番号の増加 (およびバージョン履歴の損失) は、Web インターフェイスを使用してチェックアウトし、編集してからチェックインした場合には発生しません。同じ ID を保持し、バージョン履歴はそのまま残ります。

どうすればこれを回避できますか? バージョン履歴を保持する必要があります。

4

2 に答える 2

1

HTTPトレースを取得することをお勧めします。

おそらく、リダイレクタが一時ファイルを使用し、それを元のファイルの上に移動することを示します。

修正:よりスマートなWebDAVクライアントを使用します(Xythosドライブの方が良い場合があります)。

于 2009-03-03T09:20:12.257 に答える
0

WebDav を使用すると、SharePoint ランタイムをバイパスしているため、. バージョン履歴を確実に取得するには、SharePoint API (Web サービスまたは OM)を使用する必要があります。

于 2009-03-03T04:31:40.310 に答える