2017-06-20 4 views
1

J'ai une exigence qui consiste à télécharger un document dans une structure de dossiers spécifique sur sensenet.API Sensenet: transfert de fichiers vers la structure de dossiers à l'aide du client

Pour créer la structure de dossiers, j'utilise Tools.EnsurePathAsync. Après cela, je télécharge le fichier dans la structure de dossier que je viens de créer. Le dossier est génial. Mais le fichier seulement dans quelques cas est téléchargé.

Task.Run(() => Tools.EnsurePathAsync(pathDocType)).Wait(); 

Task.Run(() =>{ 
    var stream = new MemoryStream(byteContent); 
    Content.UploadAsync(pathDocType, "test.doc", stream).WaitAndUnwrapException(); 
    stream.Dispose(); 
}).Wait(); 

Répondre

1

Nous avons une wich application uplader peut créer le non existe des dossiers, une copie de la méthode pertinente:

private bool CreateFolderPath(string parentPath, string pathToCreate) 
     { 
      try 
      { 
       string[] folders = pathToCreate.Split(new string[] { "\\" }, StringSplitOptions.RemoveEmptyEntries); 
       foreach (string folderName in folders) 
       { 
        var fileTargetContentFolderTask = Content.LoadAsync(parentPath+"/"+folderName); 
        fileTargetContentFolderTask.Wait(); 
        if (fileTargetContentFolderTask.Result == null) 
        { 
         var folder = Content.CreateNew(parentPath, ConfigurationManager.AppSettings["FolderType"], folderName); 
         var task = folder.SaveAsync(); 
         task.Wait(); 
        } 
        parentPath += "/" + folderName; 
       } 
       return true; 
      } 
      catch 
      { 
       return false; 
      } 
     } 

Peut-être que vous pouvez user cette méthode créer des sous-dossiers pour le téléchargement. Il est possible qu'un type particulier ne soit pas autorisé sous ce dossier. Vous pouvez lire le lien suivant: http://wiki.sensenet.com/Allowed_Child_Types

Le Uploader sur github: https://github.com/marosvolgyiz/SNClientLibraryUploader Le fichier source pertinente: https://github.com/marosvolgyiz/SNClientLibraryUploader/blob/master/CLUplader/ClientLibraryUploader.cs