StorageFile.CopyAsync Metode

Definisi

Overload

CopyAsync(IStorageFolder)

Membuat salinan file di folder yang ditentukan.

CopyAsync(IStorageFolder, String)

Membuat salinan file di folder yang ditentukan dan mengganti nama salinan.

CopyAsync(IStorageFolder, String, NameCollisionOption)

Membuat salinan file di folder yang ditentukan dan mengganti nama salinan. Metode ini juga menentukan apa yang harus dilakukan jika file dengan nama yang sama sudah ada di folder tujuan.

CopyAsync(IStorageFolder)

Membuat salinan file di folder yang ditentukan.

public:
 virtual IAsyncOperation<StorageFile ^> ^ CopyAsync(IStorageFolder ^ destinationFolder) = CopyAsync;
/// [Windows.Foundation.Metadata.Overload("CopyOverloadDefaultNameAndOptions")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<StorageFile> CopyAsync(IStorageFolder const& destinationFolder);
[Windows.Foundation.Metadata.Overload("CopyOverloadDefaultNameAndOptions")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<StorageFile> CopyAsync(IStorageFolder destinationFolder);
function copyAsync(destinationFolder)
Public Function CopyAsync (destinationFolder As IStorageFolder) As IAsyncOperation(Of StorageFile)

Parameter

destinationFolder
IStorageFolder

Folder tujuan tempat salinan file dibuat.

Mengembalikan

Ketika metode ini selesai, metode ini mengembalikan StorageFile yang mewakili salinan file yang dibuat di destinationFolder.

Penerapan

Atribut

Pengecualian

Anda tidak memiliki izin untuk menyalin file ke folder tujuan.

Contoh

Contoh berikut menyalin file ke folder yang ditentukan dan mengganti nama salinan dengan memanggil metode CopyAsync(IStorageFolder, String, NameCollisionOption). Contoh ini secara eksplisit menentukan nilai untuk opsi yang menggantikan file di folder tujuan jika file dengan nama yang ditentukan sudah ada.

using Windows.Storage;
using System.Threading.Tasks;

// Get the app's temporary folder.
StorageFolder tempFolder = ApplicationData.Current.TemporaryFolder;

// Create a sample file in the temporary folder.
string newFileName = "test.txt";
StorageFile newFile = await tempFolder.CreateFileAsync(newFileName);

// Get the app's local folder to use as the destination folder.
StorageFolder localFolder = ApplicationData.Current.LocalFolder;

// Specify a new name for the copied file.
string renamedFileName = "renamed_test.txt";

// Copy the file to the destination folder and rename it.
// Replace the existing file if the file already exists.
StorageFile copiedFile = await newFile.CopyAsync(localFolder, renamedFileName, NameCollisionOption.ReplaceExisting);
IAsyncAction MainPage::CopyFileAsync()
{
    // Get the app's temporary folder.
    StorageFolder sourceFolder{ ApplicationData::Current().TemporaryFolder() };
    StorageFolder targetFolder{ ApplicationData::Current().LocalFolder() };

    // Choose source file name and new name for the copied file.
    std::wstring newFileName{ L"test.txt" };
    std::wstring copyFileName{ L"renamed_test.txt" };

    // Create a sample file in the temporary folder.
    StorageFile sourceFile{ co_await sourceFolder.CreateFileAsync(newFileName, Windows::Storage::CreationCollisionOption::ReplaceExisting) };
    // Overwrite any existing file with the same name.
    StorageFile copiedFile{ co_await sourceFile.CopyAsync(targetFolder, copyFileName, Windows::Storage::NameCollisionOption::ReplaceExisting) };
    // Do something with copied file.
}
//Get the app's temporary folder
StorageFolder^ sourceFolder = ApplicationData::Current->TemporaryFolder;
StorageFolder^ targetFolder = ApplicationData::Current->LocalFolder;

// Choose source file name and new name for the copied file
String^ newFileName = "test.txt";
String^ copyFileName = "renamed_test.txt";

//Create a sample file in the temporary folder
auto copyFileTask = create_task(sourceFolder->CreateFileAsync(newFileName, Windows::Storage::CreationCollisionOption::ReplaceExisting)).then
([targetFolder, copyFileName](StorageFile^ sourceFile) -> task<StorageFile^>
{
    //Overwrite any existing file with the same name 
    auto copyFileTask = sourceFile->CopyAsync(targetFolder, copyFileName, Windows::Storage::NameCollisionOption::ReplaceExisting);
    return create_task(copyFileTask);
}).then([](StorageFile^ copiedFile) {
    //do something with copied file
});

Keterangan

Metode ini menggunakan nilai FailIfExists dari enumerasi CreationCollisionOption secara default. Artinya, metode ini menimbulkan pengecualian jika file dengan nama yang sama sudah ada di folder tujuan. Jika Anda ingin menangani tabrakan nama file dengan cara yang berbeda, panggil metode overload CopyAsync(IStorageFolder, String, NameCollisionOption).

Catatan

Ketika StorageFile.CopyAsync digunakan untuk menyalin file yang dienkripsi ke tujuan yang tidak dienkripsi, panggilan akan gagal dengan pengecualian berikut: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Lihat juga

Berlaku untuk

CopyAsync(IStorageFolder, String)

Membuat salinan file di folder yang ditentukan dan mengganti nama salinan.

public:
 virtual IAsyncOperation<StorageFile ^> ^ CopyAsync(IStorageFolder ^ destinationFolder, Platform::String ^ desiredNewName) = CopyAsync;
/// [Windows.Foundation.Metadata.Overload("CopyOverloadDefaultOptions")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<StorageFile> CopyAsync(IStorageFolder const& destinationFolder, winrt::hstring const& desiredNewName);
[Windows.Foundation.Metadata.Overload("CopyOverloadDefaultOptions")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<StorageFile> CopyAsync(IStorageFolder destinationFolder, string desiredNewName);
function copyAsync(destinationFolder, desiredNewName)
Public Function CopyAsync (destinationFolder As IStorageFolder, desiredNewName As String) As IAsyncOperation(Of StorageFile)

Parameter

destinationFolder
IStorageFolder

Folder tujuan tempat salinan file dibuat.

desiredNewName
String

Platform::String

winrt::hstring

Nama baru untuk salinan file yang dibuat di destinationFolder.

Mengembalikan

Ketika metode ini selesai, metode ini mengembalikan StorageFile yang mewakili salinan file yang dibuat di destinationFolder.

Catatan

Ketika StorageFile.CopyAsync digunakan untuk menyalin file yang dienkripsi ke tujuan yang tidak dienkripsi, panggilan akan gagal dengan pengecualian berikut: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Penerapan

M:Windows.Storage.IStorageFile.CopyAsync(Windows.Storage.IStorageFolder,System.String) M:Windows.Storage.IStorageFile.CopyAsync(Windows.Storage.IStorageFolder,Platform::String) M:Windows.Storage.IStorageFile.CopyAsync(Windows.Storage.IStorageFolder,winrt::hstring)
Atribut

Pengecualian

Anda tidak memiliki izin untuk menyalin file ke folder tujuan.

Lihat juga

Berlaku untuk

CopyAsync(IStorageFolder, String, NameCollisionOption)

Membuat salinan file di folder yang ditentukan dan mengganti nama salinan. Metode ini juga menentukan apa yang harus dilakukan jika file dengan nama yang sama sudah ada di folder tujuan.

public:
 virtual IAsyncOperation<StorageFile ^> ^ CopyAsync(IStorageFolder ^ destinationFolder, Platform::String ^ desiredNewName, NameCollisionOption option) = CopyAsync;
/// [Windows.Foundation.Metadata.Overload("CopyOverload")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<StorageFile> CopyAsync(IStorageFolder const& destinationFolder, winrt::hstring const& desiredNewName, NameCollisionOption const& option);
[Windows.Foundation.Metadata.Overload("CopyOverload")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<StorageFile> CopyAsync(IStorageFolder destinationFolder, string desiredNewName, NameCollisionOption option);
function copyAsync(destinationFolder, desiredNewName, option)
Public Function CopyAsync (destinationFolder As IStorageFolder, desiredNewName As String, option As NameCollisionOption) As IAsyncOperation(Of StorageFile)

Parameter

destinationFolder
IStorageFolder

Folder tujuan tempat salinan file dibuat.

desiredNewName
String

Platform::String

winrt::hstring

Nama baru untuk salinan file yang dibuat di destinationFolder.

option
NameCollisionOption

Salah satu nilai enumerasi yang menentukan cara menangani tabrakan jika file dengannewName yang diinginkan sudah ada di folder tujuan.

Mengembalikan

Ketika metode ini selesai, metode ini mengembalikan StorageFile yang mewakili salinan file yang dibuat di destinationFolder.

Catatan

Ketika StorageFile.CopyAsync digunakan untuk menyalin file yang dienkripsi ke tujuan yang tidak dienkripsi, panggilan akan gagal dengan pengecualian berikut: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Penerapan

M:Windows.Storage.IStorageFile.CopyAsync(Windows.Storage.IStorageFolder,System.String,Windows.Storage.NameCollisionOption) M:Windows.Storage.IStorageFile.CopyAsync(Windows.Storage.IStorageFolder,Platform::String,Windows.Storage.NameCollisionOption) M:Windows.Storage.IStorageFile.CopyAsync(Windows.Storage.IStorageFolder,winrt::hstring,Windows.Storage.NameCollisionOption)
Atribut

Pengecualian

Anda tidak memiliki izin untuk menyalin file ke folder tujuan.

Lihat juga

Berlaku untuk