質問

バージョンされたファイルを備えたライブラリがあります。アップロード用に準備されたバージョン化されたファイル(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はバージョンの処理に対応します。

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