// LoadFiles bekommt einen Ordner übergeben und lädt die // Dateien, die in dem Ordner liegen. Dann wird für jede Datei // in dem Ordner eine neue Instanz von der Klasse SharePointFile // erstellt und die Instanzvariabelen gesetzt. private void LoadFiles(Folder subFolder) { string subFolderName = subFolder.Name; this.clientContext.Load(subFolder.Files); this.clientContext.ExecuteQuery(); foreach (File file in subFolder.Files) { // aspx Files sind SharePoint Konfigurationsdateien und für uns unwichtig if (file.Name.Contains(".aspx")) { continue; } this.sharePointFile = new SharePointFile(); this.sharePointFile.SetName(file.Name); this.sharePointFile.BuildLinkingUrl(this.baseUrl.Substring(0, this.baseUrl.Length - 1)); // Die BaseUrl hat am Ende ein '/', das zuviel wäre, this.sharePointFile.BuildLinkingUrl(file.ServerRelativeUrl); // denn ServerRelativeUrl beginnt mit einem '/'. foreach (SharePointFolder folder in this.sharePointFolderList) { CheckForMatchingSubFolder(subFolderName, folder); } } }
// Eventhandler für den Drop von Dateien in das WindowsForm bzw. den Treeview // hier wird der Dateipfad übergeben, über den wir an die Dateien kommen, die hochgeladen werden sollen. // Die Dateipfade werden in das Stringarray "files" gespeichert und in der foreach-Schleife durchlaufen. // Am Anfang der Funktion wird die Klasse SharePointFileUploader initialisiert, damit die Klasse die ganze // Funktion über ansprechbar ist. private void TWI_TreeView_DragDrop(object sender, DragEventArgs e) { string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); //SharePointFileUploader fileUploader = new SharePointFileUploader(this.baseUrl, this.subWebsite, this.user, this.password, this.subPage, this.listName, this.filter); foreach (string file in files) { SharePointFile newSPFile = new SharePointFile(); string[] parts = file.Split('\\'); // Teilt die Dateipfade am Trennstrich '\' und speichert diese in das stringarray parts newSPFile.SetName(parts[parts.Length - 1]); // Das letzt Element des Arrays ist der Name der Datei. Point targetPoint = TWI_TreeView.PointToClient(new Point(e.X, e.Y)); // Hier wird bestimmt wo die Dateien im Treeview gedroped wurden. TreeNode parentNode = TWI_TreeView.GetNodeAt(targetPoint); if (parentNode != null) { // Hier wird geprüft ob die gedropte Datei auf einem TreeNode gedropt wurde, // der in der fileList drin ist. Wenn dem so ist wird der parentNode auf den Parent // von sich selbst verwiesen, weil jede Datei in einem Ordner liegen muss. foreach (TreeNode node in this.fileList) { if (node.Text == parentNode.Text) { parentNode = parentNode.Parent; } } } SharePointFolder parentFolder; try { parentFolder = FindParentFolder(parentNode.Text); } catch (ArgumentException ex) { MessageBox.Show(ex.Message); logger.Error(ex.Message + "\n" + ex.StackTrace); logger.Debug("ParentNodeText: " + parentNode.Text); return; } Drag_Drop(this, new DragDropEventArgs(file, parentFolder.GetServerRelativeUrl())); /*fileUploader.SetUrl(parentFolder); * * // Hier wird die Datei über die Klasse SharePointFileUploader hochgeladen. * try { * fileUploader.SetConnection(); * fileUploader.UploadFile(file, parentFolder); * * } catch (Exception ex) { * MessageBox.Show(resourceManager.GetString("errorUploading") + newSPFile.GetName() + "\n" + resourceManager.GetString("filepath") + file + "\n\n" + ex.Message); * logger.Error(ex.Message + "\n" + ex.StackTrace); * logger.Debug(resourceManager.GetString("errorUploading") + newSPFile.GetName() + "\n" + resourceManager.GetString("filepath") + file + "\n\n" + ex.Message); * return; * } * } * // Am Ende wird die aktualisierte Liste neu geladen. * this.AddSharePointData(fileUploader.UpdateSharePointDataList()); */ } }
public void AddFile(SharePointFile file) { this.files.Add(file); }