| 

.NET C# Java Javascript Exception

2
Hallo,

ich habe begonnen eine kleine Anwendung zu schreiben, die aus einer Verzeichnisstruktur Dateien in eine Sharepoint Dokumentenbibliothek hochladen soll. Das Ganze mit dem Client Object Model in c#, weil ich dafür am Ende ein Silverlightfrontend bereit stellen möchte. Im Moment läuft das noch als Consolen App. Alle Dateien sollen in eine Ebene, also ohne Ordnerstruktur, geladen werden.

Jetzt kann es passieren, dass zwei Dateien den gleichen Namen haben. Ich bekomme dann die Fehlermeldung "Die Datei "..." ist nicht ausgecheckt. Sie müssen dieses Dokument erst auschecken, bevor Sie Änderungen vornehmen".

Auschecken ist kein Problem:
CamlQuery cq = new CamlQuery();
cq.ViewXml = "<View><Query><Where><Eq><FieldRef Name=\"FileLeafRef\" /><Value Type=\"Text\">" + file.Name + "</Value></Eq></Where></Query></View>";
ListItemCollection lic = list.GetItems(cq);
ctx.Load(lic);
ctx.ExecuteQuery();
ListItem li = lic[0];
li.File.CheckOut();
ctx.Load(li);
ctx.ExecuteQuery();


Wenn ich nun aber den Uploadvorgang einfach wiederhole bekomme ich folgende Fehlermeldung:

Eine Datei mit dem Namen "..." ist bereits vorhanden. Sie wurde zuletzt am 29 Jul 2011 16:13:48 +0200 von ... bearbeitet.

Wie also erzeuge ich eine neue Version und checke diese wieder ein?

Danke für die Hilfe
News:
29.07.2011
LutzJ 1,3k 1 8
carlptr 777 1 8
Willst du wirklich eine neue Version erzeugen, dann sollte auch die Versionierung in der Bibliothek aktiviert sein oder willst du die Datei erstezen?
carlptr 29.07.2011
Ja, ich möchte eine neue Version erzeugen. In der Bibliothek ist die Versionierung bereits aktiviert.
LutzJ 30.07.2011
Ja, ein interessantes Problem
GodDog 11.09.2017
2 Antworten
1
Ich denke, du musst keinen Upload sondern einen CheckIn auf dem File durchführen, siehe MSDN.
Vorher musst du vermutlich den Inhalt der Datei ändern (Beispiel).
30.07.2011
carlptr 777 1 8
Hallo

sorry für die späte Rückmeldung: Beim CheckIn kann ich doch nur einen Comment angeben und muss dann sagen ob es ein Major oder Minor ist. Eine Refernez auf die neue Datei hole ich mir ja in dem Codeblock oben, aber li.File kann keine neue Datei zugewiesen werden (ist schreibgeschützt)
LutzJ 02.08.2011
0
thanks for shair ng man TutuApp
TutuApp
06.09.2017
fileorgin 11 1

Stelle deine .net-Frage jetzt!