怎样复制html阅读文件格式,如何复制和粘贴文件 (HTML)

如何复制和粘贴文件 (HTML)

12/11/2015

本文内容

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

剪贴板允许用户在同一应用中或者在同一计算机上的两个不同的应用之间复制和粘贴文件。本主题介绍如何在你的应用中支持复制和粘贴文件。

查看我们的剪贴板示例应用以便获得介绍如何复制和粘贴其他类型数据的完整示例。

你需要了解的内容

技术

先决条件

你应当熟悉 Visual Studio 及其关联模板。

你应当熟悉 JavaScript。

将文件复制到剪贴板

检索用户要复制的文件。以下示例使用文件选取器检索文件。若要了解有关文件选取器的详细信息,请参阅快速入门:使用文件选取器访问文件。若要了解有关访问文件的其他方法的详细信息,请参阅访问数据和文件。

var picker = new Windows.Storage.Pickers.FileOpenPicker();

picker.fileTypeFilter.replaceAll(["*"]);

picker.viewMode = Windows.Storage.Pickers.PickerViewMode.list;

picker.pickMultipleFilesAsync().done(function (files) {

...

}

创建 DataPackage 对象并向该对象中添加文件。

var dataPackage = new Windows.ApplicationModel.DataTransfer.DataPackage();

dataPackage.setStorageItems(files);

从支持文件操作的目标(文件资源管理器)请求复制操作。

dataPackage.requestedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.copy;

将 DataPackage 的内容复制到剪贴板。

Windows.ApplicationModel.DataTransfer.Clipboard.setContent(dataPackage);

粘贴剪贴板中的文件

获取剪贴板的内容。

var dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.getContent();

检查剪贴板是否包含任何存储项目(文件和文件夹),如果包含,则检索这些项目。

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

}

});

}

以下示例检索剪贴板中的文件并将这些文件存储在应用的本地文件夹中。

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

}

}

相关主题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值