1

Je crée une application WinJS pour Windows Store pour Windows 8 et 10. Je produis une application pour mon entreprise, et à la fin d'un processus utilisateur, on s'attend à ce qu'ils cliquent sur un bouton Exporter qui enregistre environ 10 fichiers un dossier de leur choix.Comment pouvez-vous enregistrer plusieurs fichiers à la fois avec WinJS?

Maintenant, je sais comment utiliser un Windows.Storage.Pickers.FileSavePicker() pour enregistrer des fichiers individuels, mais je ne veux pas donner à l'utilisateur la charge d'accepter la sauvegarde de chacun des 10 fichiers - Je veux juste que l'utilisateur accepte le dossier dans lequel ils vont, puis il les sauve tous d'un seul coup.

Est-ce possible dans WinJS?

+0

Utiliser '.FolderPicker()', puis ajouter les noms de fichiers sur le chemin. –

+0

@ChrisG cela vous dérangerait-il d'envoyer un exemple de code dans un pastebin sur la façon dont je peux utiliser l'API FolderPicker(), et obtenir un tableau de noms de fichiers et de fil écrit dans ce dossier? J'apprécierais tellement! – TKoL

+0

Je ne vais pas, désolé. J'ai trouvé l'appel FolderPicker via autocomplete de google, je n'ai même pas ouvert la page. Vous êtes payé pour faire cela, et le travail est coupé. Bonne chance :) –

Répondre

1

mais je ne veux pas donner à l'utilisateur le fardeau d'accepter la sauvegarde de chacun des 10 fichiers - je veux juste que l'utilisateur accepte le dossier dans lequel ils vont, puis il les sauve tout en un seul coup.

Vous pouvez utiliser FolderPicker pour obtenir le dossier cible et utiliser StorageFolder.CreateFileAsync pour générer 10 fichiers et copiez le contenu que vous voulez le fichier:

var pickers = Windows.Storage.Pickers; 
var DataWriter = Windows.Storage.Streams.DataWriter; 
... 
document.getElementById("btnSave").onclick = function (evt) 
{ 
     var content = "Test Content"; 
     var picker = new pickers.FolderPicker(); 
     picker.suggestedStartLocation = pickers.PickerLocationId.computerFolder; 
     picker.fileTypeFilter.append(".txt"); 
     picker.pickSingleFolderAsync().then(function (folder) { 
     if (folder != null) 
     { 
      for (var i = 1; i < 11; i++) { 
       folder.createFileAsync("testFile" +i+ ".txt", Windows.Storage.CreationCollisionOption.replaceExisting) 
        .then(function (file) { 
         file.openAsync(Windows.Storage.FileAccessMode.readWrite) 
          .then(function (randomAccessStream) { 
           var dataWriter = new DataWriter(randomAccessStream.getOutputStreamAt(0)); 
           dataWriter.writeString(content); 
             dataWriter.storeAsync().done(function() { 
              randomAccessStream.close(); 
              dataWriter.close(); 
           }); 
          }, errorHandler); 
        }, errorHandler); 
       } 
      } 
     }, errorHandler) 
} 

function errorHandler(error){}