Comment copier et coller des fichiers
Réduire la table des matières
Développer la table des matières

Comment copier et coller des fichiers (HTML)

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Le Presse-papiers permet aux utilisateurs de copier et coller des fichiers au sein d’une application ou entre deux applications installées sur le même ordinateur. Cette rubrique vous montre comment assurer la prise en charge de la copie et du collage de fichiers dans votre application.

Via notre exemple d’application utilisant le Presse-papiers, vous découvrirez des exemples complets qui montrent comment copier et coller d’autres types de données.

Ce que vous devez savoir

Technologies

Prérequis

Copie de fichiers dans le Presse-papiers

  1. Récupérez les fichiers que l’utilisateur veut copier. L’exemple suivant utilise le sélecteur de fichiers pour récupérer les fichiers. Pour en savoir plus sur le sélecteur de fichiers, voir Démarrage rapide : accès aux fichiers à l’aide de sélecteurs de fichiers. Pour en savoir plus sur les autres moyens d’accès aux fichiers, voir Accès aux données et aux fichiers.
    
    var picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.fileTypeFilter.replaceAll(["*"]);
    picker.viewMode = Windows.Storage.Pickers.PickerViewMode.list;
    picker.pickMultipleFilesAsync().done(function (files) {
    
        ...
    
    }
    
    
    .
  2. Créez l’objet DataPackage et ajoutez-y les fichiers.
    
    var dataPackage = new Windows.ApplicationModel.DataTransfer.DataPackage();
    dataPackage.setStorageItems(files);
    
    
  3. Demandez une opération de copie à partir des cibles qui prennent en charge les opérations relatives aux fichiers, par exemple l’Explorateur de fichiers.
    
    
    dataPackage.requestedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.copy;
    
    
    
  4. Copiez le contenu de DataPackage dans le Presse-papiers.
    
    Windows.ApplicationModel.DataTransfer.Clipboard.setContent(dataPackage);
    
    

Collage de fichiers à partir du Presse-papiers

  1. Récupérez le contenu du Presse-papiers.
    
    var dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.getContent();
    
    
  2. Vérifiez si le Presse-papiers contient des éléments de stockage (fichiers et dossiers) et, si oui, récupérez les éléments.
    
    
    if (dataPackageView.contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.storageItems)) {
        dataPackageView.getStorageItemsAsync().done(function (storageItems) {
           ...
        }
        ...
    }
    
    
  3. Récupérez tous les fichiers et copiez-les comme indiqué par l’utilisateur. L’exemple suivant copie les fichiers dans le dossier local de l’application.
    
    // Copy files to the local folder.
    storageItems.forEach(function (file) {
        if (file.isOfType(Windows.Storage.StorageItemTypes.file)) {
            file.copyAsync(Windows.Storage.ApplicationData.current.localFolder,
                    file.name, Windows.Storage.NameCollisionOption.replaceExisting).done(function (newFile) {
                document.getElementById("fileOutput").innerHTML += file.name + "";
            }, function (e) {
                displayError("Error copying file: " + e);
            });
        } else {
            // It's a folder. We're skipping folders to keep the sample brief.
            document.getElementById("fileOutput").innerHTML += file.path + " is a folder, skipping ";
        }
    });
    
    

Exemples complets

Cet exemple montre comment copier des fichiers que l’utilisateur sélectionne avec le sélecteur de fichiers.


function copyFiles() {

    var picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.fileTypeFilter.replaceAll(["*"]);
    picker.viewMode = Windows.Storage.Pickers.PickerViewMode.list;
    picker.pickMultipleFilesAsync().done(function (files) {
        if (files.size > 0) {
            var dataPackage = new Windows.ApplicationModel.DataTransfer.DataPackage();
            dataPackage.setStorageItems(files);

            // Request a copy operation from targets that support different file operations, like Windows Explorer
            dataPackage.requestedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.copy;

            try {
                // Copy the content to the Clipboard.
                Windows.ApplicationModel.DataTransfer.Clipboard.setContent(dataPackage);

                displayStatus("Files have been copied to Clipboard. Try pasting them in another application, or click Paste button above.");
            } catch (e) {
                // Copying data to Clipboard can fail if, for example, another app is holding 
                // the Clipboard open.
                displayError("Error copying content to Clipboard: " + e + ". Try again.");
            }
        } else {
            displayStatus("No file selected");
        }
    });
}

L’exemple suivant récupère des fichiers à partir du Presse-papiers et les stocke dans le dossier local de l’application.


function pasteFiles() {
    // Get the content from the Clipboard.
    var dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.getContent();

    // Check whether the content contains any storage items.
    if (dataPackageView.contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.storageItems)) {
        dataPackageView.getStorageItemsAsync().done(function (storageItems) {

            // Copy files to the local folder.
            storageItems.forEach(function (file) {
                if (file.isOfType(Windows.Storage.StorageItemTypes.file)) {
                    file.copyAsync(Windows.Storage.ApplicationData.current.localFolder, 
                            file.name, Windows.Storage.NameCollisionOption.replaceExisting).done(function (newFile) {
                        document.getElementById("fileOutput").innerHTML += file.name + "";
                    }, function (e) {
                        displayError("Error copying file: " + e);
                    });
                } else {
                    // It's a folder. We're skipping folders to keep the sample brief.
                    document.getElementById("fileOutput").innerHTML += file.path + " is a folder, skipping ";
                }
            });
        }, function (e) {
            displayError("Error retrieving files from Clipboard: " + e);
        });
    } else {
        displayStatus("No files on Clipboard");
    }
}

Rubriques associées

Démarrage rapide : fonctions de base du Presse-papiers
Comment copier et coller du contenu HTML
Comment copier et coller des images
Recommandations et liste de vérification sur les commandes du Presse-papiers
DataPackage
Windows.ApplicationModel.DataTransfer
Exemple d’application utilisant le Presse-papiers

 

 

Afficher:
© 2018 Microsoft