ファイルバージョンのアップロード - クライアントオブジェクトモデル
-
16-10-2019 - |
質問
バージョンされたファイルを備えたライブラリがあります。アップロード用に準備されたバージョン化されたファイル(1バージョン= 1ファイル)があります。新しいバージョンを作成するにはどうすればよいですか?ファイルのコンテンツプロパティを設定して更新するだけですか?あなたの経験を共有してください、ありがとう
編集:私はこのようなものを持っています:
File1|v1
File1|v2
File1|v4
File2|v2
File2|v5
だから、バージョンがありません。アップロード時にファイルバージョンを設定することは可能ですか(アイテムのフィールド?)?そうでない場合は、不足しているバージョンを前/次のバージョンで入力します。たとえば、File2 | V1はFile2 | V2で満たされます。
解決
バージョン番号をプログラム的に割り当てる方法がわかりませんが、SharePointにバージョン番号を割り当ててもらうことができない場合は...
メソッドのサーバーバージョンで:
SPFileCollection.Add(urlOfFile, fileContent, overwrite);
Overwrite = trueで渡され、ドキュメントライブラリのバージョンがオンになっている場合、ドキュメントの新しいバージョンが作成されると思います。 (これはブラウザを介した動作です。)メソッドのクライアントオブジェクトモデルバージョンが同じように動作すると仮定します。
FileCreationInformation fci = new FileCreationInformation();
fci.Url = urlOfFile;
fci.Content = fileContent;
fci.Overwrite = true;
folder.files.Add(fci);
したがって、ファイルをバージョンの正しい順序でアップロードする限り、SharePointは各バージョンを作成する必要があります。
他のヒント
これがファイルのバージョン化をシミュレートする小さなコードサンプルです
public File changeDocumentVersion(string version,File file){
string [] versions = version.Split(new char[]{'.'});
int minor = Int32.Parse(versions[1]);
int major = Int32.Parse(versions[0]);
for (int i = 1; i < major; i++)
{
file.CheckOut();
file.CheckIn("versioning", CheckinType.MajorCheckIn);
}
for (int i = 0; i < minor; i++)
{
file.CheckOut();
file.CheckIn("versioning", CheckinType.MinorCheckIn);
file.Context.Load(file);
file.Context.ExecuteQuery();
}
return file;
}
有効なバージョン(リスト/ライブラリ設定の下にある、バージョン化)が有効になっている限り、SPはバージョンの処理に対応します。
所属していません sharepoint.stackexchange