Share via


StorageFile.CopyAsync Método

Definición

Sobrecargas

CopyAsync(IStorageFolder)

Crea una copia del archivo en la carpeta especificada.

CopyAsync(IStorageFolder, String)

Crea una copia del archivo en la carpeta especificada y cambia el nombre de la copia.

CopyAsync(IStorageFolder, String, NameCollisionOption)

Crea una copia del archivo en la carpeta especificada y cambia el nombre de la copia. Este método también especifica qué hacer si ya existe un archivo con el mismo nombre en la carpeta de destino.

CopyAsync(IStorageFolder)

Crea una copia del archivo en la carpeta especificada.

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)

Parámetros

destinationFolder
IStorageFolder

Carpeta de destino donde se crea la copia del archivo.

Devoluciones

Cuando se completa este método, devuelve un objeto StorageFile que representa la copia del archivo creado en destinationFolder.

Implementaciones

Atributos

Excepciones

No tiene permiso para copiar un archivo en la carpeta de destino.

Ejemplos

En el ejemplo siguiente se copia un archivo en la carpeta especificada y se cambia el nombre de la copia llamando al método CopyAsync(IStorageFolder, String, NameCollisionOption). En este ejemplo se especifica explícitamente un valor para la opción que reemplaza el archivo en la carpeta de destino si ya existe un archivo con el nombre especificado.

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

Comentarios

Este método usa el valor FailIfExists de la enumeración CreationCollisionOption de forma predeterminada. Es decir, este método genera una excepción si ya existe un archivo con el mismo nombre en la carpeta de destino. Si desea controlar una colisión de nombres de archivo de otra manera, llame al método sobrecargado CopyAsync(IStorageFolder, String, NameCollisionOption).

Nota:

Cuando se usa StorageFile.CopyAsync para copiar un archivo cifrado en un destino que no está cifrado, se producirá un error en la llamada con la siguiente excepción: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Consulte también

Se aplica a

CopyAsync(IStorageFolder, String)

Crea una copia del archivo en la carpeta especificada y cambia el nombre de la copia.

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)

Parámetros

destinationFolder
IStorageFolder

Carpeta de destino donde se crea la copia del archivo.

desiredNewName
String

Platform::String

winrt::hstring

Nuevo nombre para la copia del archivo creado en destinationFolder.

Devoluciones

Cuando se completa este método, devuelve un objeto StorageFile que representa la copia del archivo creado en destinationFolder.

Nota:

Cuando se usa StorageFile.CopyAsync para copiar un archivo cifrado en un destino que no está cifrado, se producirá un error en la llamada con la siguiente excepción: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Implementaciones

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)
Atributos

Excepciones

No tiene permiso para copiar un archivo en la carpeta de destino.

Consulte también

Se aplica a

CopyAsync(IStorageFolder, String, NameCollisionOption)

Crea una copia del archivo en la carpeta especificada y cambia el nombre de la copia. Este método también especifica qué hacer si ya existe un archivo con el mismo nombre en la carpeta de destino.

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)

Parámetros

destinationFolder
IStorageFolder

Carpeta de destino donde se crea la copia del archivo.

desiredNewName
String

Platform::String

winrt::hstring

Nuevo nombre para la copia del archivo creado en destinationFolder.

option
NameCollisionOption

Uno de los valores de enumeración que determina cómo controlar la colisión si ya existe un archivo con el desiredNewName especificado en la carpeta de destino.

Devoluciones

Cuando se completa este método, devuelve un objeto StorageFile que representa la copia del archivo creado en destinationFolder.

Nota:

Cuando se usa StorageFile.CopyAsync para copiar un archivo cifrado en un destino que no está cifrado, se producirá un error en la llamada con la siguiente excepción: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Implementaciones

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)
Atributos

Excepciones

No tiene permiso para copiar un archivo en la carpeta de destino.

Consulte también

Se aplica a