Como copiar e colar arquivos (HTML)

Applies to Windows only

A Área de Transferência permite ao usuário copiar e colar arquivos no mesmo aplicativo ou entre dois aplicativos diferentes no mesmo computador. Este tópico mostra como dar suporte à cópia e colagem de arquivos no seu aplicativo.

Veja nosso exemplo de aplicativo de área de transferência para conhecer exemplos abrangentes que mostram como copiar e colar diferentes tipos de dados.

O que você precisa saber

Tecnologias

Pré-requisitos

Copiando arquivos na área de transferência

  1. Recupere os arquivos que o usuário quer copiar. Este exemplo usa o seletor de arquivos para recuperá-los. Para saber mais sobre o seletor de arquivos, veja Guia de início rápido: acessar arquivos com seletores. Para saber mais sobre outras maneiras de acessar arquivos, veja Acessando dados e arquivos.
    
    var picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.fileTypeFilter.replaceAll(["*"]);
    picker.viewMode = Windows.Storage.Pickers.PickerViewMode.list;
    picker.pickMultipleFilesAsync().done(function (files) {
    
        ...
    
    }
    
    
  2. Crie o objeto DataPackage e adicione arquivos nele.
    
    var dataPackage = new Windows.ApplicationModel.DataTransfer.DataPackage();
    dataPackage.setStorageItems(files);
    
    
  3. Solicite uma operação de cópia de destinos com suporte para operações de arquivo, como o Explorador de Arquivos.
    
    
    dataPackage.requestedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.copy;
    
    
    
  4. Copie o conteúdo do DataPackage na Área de Transferência.
    
    Windows.ApplicationModel.DataTransfer.Clipboard.setContent(dataPackage);
    
    

Colando arquivos da área de transferência

  1. Obtenha o conteúdo da área de transferência.
    
    var dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.getContent();
    
    
  2. Verifique se a área de transferência contém itens de armazenamento (arquivos e pastas) e, se tiver, recupere-os.
    
    
    if (dataPackageView.contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.storageItems)) {
        dataPackageView.getStorageItemsAsync().done(function (storageItems) {
           ...
        }
        ...
    }
    
    
  3. Recupere todos os arquivos e copie-os de acordo com a orientação do usuário. O exemplo a seguir copia os arquivos na pasta local do aplicativo.
    
    // 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 ";
        }
    });
    
    

Exemplos completos

Esse exemplo mostra como copiar arquivos que o usuário seleciona com o seletor de arquivos.


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

O exemplo a seguir recupera arquivos da área de transferência e os armazena na pasta local do aplicativo.


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

Tópicos relacionados

Guia de início rápido: Noções básicas sobre área de transferência
Como copiar e colar HTML
Como copiar e colar imagens
Diretrizes e lista de verificação de comandos da área de transferência
DataPackage
Windows.ApplicationModel.DataTransfer
Exemplo de aplicativo de área de transferência

 

 

Mostrar:
© 2014 Microsoft