私のアプリは、Web クライアント/WebDAV (WebDAV リダイレクター) 経由で SharePoint 内のファイルを編集します。チェックアウト/チェックインするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/537990

  •  22-08-2019
  •  | 
  •  

質問

SharePoint に保存されているファイルを編集できるようにアプリケーションを統合しています。私は Web クライアント サービス、別名 WebDAV リダイレクター (webclnt.dll) を使用しています。これは、通常の CreateFile/read/write Windows API 呼び出しを通常のドライブ I/O パスから WebDAV 経由でネットワークにリダイレクトする素晴らしい仕事をします。ただし、ファイルがチェックインされている場合、ファイルへの読み取り専用アクセスのみを取得できます。

Web クライアント サービスを使用して、ファイルを編集するときにファイルをチェックアウトし、編集が終了したときにチェックインするようにするにはどうすればよいですか?

編集:GetFileAttributes と SetFileAttributes を使用して FILE_ATTRIBUTE_READONLY をテストしてみました。そのフラグを使用して、ファイルがチェックアウトされていない時期を判断し、チェックアウトできることを期待しました (チェックアウトするフラグの設定を解除してから、チェックアウトするように設定することで)で)。そこには運がありません。ファイルは常に読み取り専用ではないと表示されます。

役に立ちましたか?

解決

ファイルのチェックイン/チェックアウトを実行するには、次のコードを使用する必要があります。

SPSite oSite = new SPSite ("http://<sitename>/");
SPWeb oWeb = oSite.OpenWeb(); 
SPList oList = oWeb.Lists["Shared Documents"];
SPListItem oListItem = oList.Items[0]; //taking the first list item
oListItem.File.CheckOut();
oListItem["Name"] = "xyz";           
oListItem.Update();
oListItem.File.CheckIn("file name has been changed");

SharePoint WebService 経由でチェックイン/チェックアウトを行う必要がある場合は、Brad McCable のブログのコードを参照してください。 Windows Sharepoint Services Web サービスの例.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top