0

こんにちは、メタデータを含むクライアント API を使用して SharePoint 2010 にファイルをアップロードし、完了後にファイルをチェックインしようとしています。以下は私のコードです:

public void UploadDocument(SharePointFolder フォルダー、文字列ファイル名、ブール値の上書き) {

var fileInfo = new FileInfo(filename);
var targetLocation = String.Format("{0}{1}{2}", folder.ServerRelativeUrl,
    Path.AltDirectorySeparatorChar, fileInfo.Name);

using (var fs = new FileStream(filename, FileMode.Open))
{
    SPFile.SaveBinaryDirect(mClientContext, targetLocation, fs, overwrite);
}

// doesn't work
SPFile newFile = mRootWeb.GetFileByServerRelativeUrl(targetLocation);
mClientContext.Load(newFile);
mClientContext.ExecuteQuery();

//check out to make sure not to create multiple versions
newFile.CheckOut();

// use OverwriteCheckIn type to make sure not to create multiple versions 
newFile.CheckIn("test", CheckinType.OverwriteCheckIn);
mClientContext.Load(newFile);
mClientContext.ExecuteQuery();

//SPFile uploadFile = mRootWeb.GetFileByServerRelativeUrl(targetLocation);

//uploadFile.CheckOut();
//uploadFile.CheckIn("SOME VERSION COMMENT I'D LIKE TO ADD", CheckinType.OverwriteCheckIn);

//mClientContext.ExecuteQuery();

}

ファイルをアップロードできますが、メタデータを追加できず、ファイルがチェックアウトされています。メタ データを追加し、完了後にファイルをチェックインしたいと考えています。

私の SharePointFolder クラスには、アップロード先のフォルダー パスの serverRelativeUrl があります。どんな助けでも大歓迎です。

4

1 に答える 1

0

executeQuery(); の前に資格情報が必要です。および SaveBinaryDirect();

例えば:

mClientContext.Credentials = new NetworkCredential("LoginID","LoginPW", "LoginDomain");

SPFile newFile = mRootWeb.GetFileByServerRelativeUrl(targetLocation);
mClientContext.Load(newFile);
mClientContext.ExecuteQuery();
于 2014-06-27T08:53:02.747 に答える