Kopieren und Einfügen von Dateien
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern

So wird’s gemacht: Kopieren und Einfügen von Dateien (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

Zwischenablageaktionen zum Kopieren und Einfügen können innerhalb einer App oder zwischen unterschiedlichen Apps auf demselben Computer ausgeführt werden. In diesem Thema wird dargestellt, wie Sie Unterstützung zum Kopieren und Einfügen in Ihre App integrieren.

In der Beispiel-App zum Einfügen in die Zwischenablage finden Sie ausführliche Beispiele, die das Kopieren und Einfügen anhand anderer Datentypen verdeutlichen.

Wissenswertes

Technologien

Voraussetzungen

Kopieren von Dateien in die Zwischenablage

  1. Abrufen der Dateien, die der Benutzer kopieren möchte Im folgenden Beispiel wird die Dateiauswahl verwendet, um Dateien abzurufen. Weitere Informationen zur Dateiauswahl finden Sie unter Schnellstart: Dateizugriff mit Dateiauswahl. Weitere Informationen über andere Methoden zum Dateizugriff finden Sie unter Zugreifen auf Daten und Dateien.
    
    var picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.fileTypeFilter.replaceAll(["*"]);
    picker.viewMode = Windows.Storage.Pickers.PickerViewMode.list;
    picker.pickMultipleFilesAsync().done(function (files) {
    
        ...
    
    }
    
    
  2. Erstellen Sie das DataPackage-Objekt, und fügen Sie diesem die Dateien hinzu.
    
    var dataPackage = new Windows.ApplicationModel.DataTransfer.DataPackage();
    dataPackage.setStorageItems(files);
    
    
  3. Fordern Sie einen Kopiervorgang von den Zielen an, die Dateivorgänge unterstützen, wie z. B. Datei-Explorer.
    
    
    dataPackage.requestedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.copy;
    
    
    
  4. Kopieren Sie den Inhalt von DataPackage in die Zwischenablage.
    
    Windows.ApplicationModel.DataTransfer.Clipboard.setContent(dataPackage);
    
    

Einfügen von Dateien aus der Zwischenablage

  1. Rufen Sie die Inhalte aus der Zwischenablage ab.
    
    var dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.getContent();
    
    
  2. Überprüfen Sie, ob die Zwischenablage Speicherelemente enthält (Dateien und Ordner), und rufen Sie diese ggf. ab.
    
    
    if (dataPackageView.contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.storageItems)) {
        dataPackageView.getStorageItemsAsync().done(function (storageItems) {
           ...
        }
        ...
    }
    
    
  3. Rufen Sie die Dateien ab, und kopieren Sie sie wie vom Benutzer angewiesen. Im folgenden Beispiel werden die Dateien in den lokalen Ordner der App kopiert.
    
    // 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 ";
        }
    });
    
    

Vollständige Beispiele

In diesem Beispiel wird dargestellt, wie per Dateiauswahl vom Benutzer ausgewählte Dateien kopiert werden.


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");
        }
    });
}

Im folgenden Beispiel werden Dateien aus der Zwischenablage abgerufen und im lokalen Ordner der App gespeichert.


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");
    }
}

Verwandte Themen

Schnellstart: Grundlagen zur Zwischenablage
Kopieren und Einfügen von HTML
Kopieren und Einfügen von Bildern
Richtlinien und Prüfliste für Befehle für die Zwischenablage
DataPackage
Windows.ApplicationModel.DataTransfer
Beispiel-App zum Einfügen in die Zwischenablage

 

 

Anzeigen:
© 2016 Microsoft