Share via


StorageFile.CopyAsync Metodo

Definizione

Overload

CopyAsync(IStorageFolder)

Crea una copia del file nella cartella specificata.

CopyAsync(IStorageFolder, String)

Crea una copia del file nella cartella specificata e rinomina la copia.

CopyAsync(IStorageFolder, String, NameCollisionOption)

Crea una copia del file nella cartella specificata e rinomina la copia. Questo metodo specifica anche cosa fare se nella cartella di destinazione esiste già un file con lo stesso nome.

CopyAsync(IStorageFolder)

Crea una copia del file nella cartella specificata.

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)

Parametri

destinationFolder
IStorageFolder

Cartella di destinazione in cui viene creata la copia del file.

Restituisce

Al termine di questo metodo, restituisce un oggetto StorageFile che rappresenta la copia del file creato in destinationFolder.

Implementazioni

Attributi

Eccezioni

Non si dispone dell'autorizzazione per copiare un file nella cartella di destinazione.

Esempio

L'esempio seguente copia un file nella cartella specificata e rinomina la copia chiamando il metodo CopyAsync(IStorageFolder, String, NameCollisionOption). In questo esempio viene specificato in modo esplicito un valore per l'opzione che sostituisce il file nella cartella di destinazione se esiste già un file con il nome specificato.

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

Commenti

Questo metodo usa il valore FailIfExists dell'enumerazione CreationCollisionOption per impostazione predefinita. Questo metodo genera quindi un'eccezione se nella cartella di destinazione esiste già un file con lo stesso nome. Se si vuole gestire un conflitto di nomi file in modo diverso, chiamare il metodo di overload CopyAsync(IStorageFolder, String, NameCollisionOption).

Nota

Quando StorageFile.CopyAsync viene usato per copiare un file crittografato in una destinazione non crittografata, la chiamata avrà esito negativo con l'eccezione seguente: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Vedi anche

Si applica a

CopyAsync(IStorageFolder, String)

Crea una copia del file nella cartella specificata e rinomina 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)

Parametri

destinationFolder
IStorageFolder

Cartella di destinazione in cui viene creata la copia del file.

desiredNewName
String

Platform::String

winrt::hstring

Nuovo nome per la copia del file creato in destinationFolder.

Restituisce

Al termine di questo metodo, restituisce un oggetto StorageFile che rappresenta la copia del file creato in destinationFolder.

Nota

Quando StorageFile.CopyAsync viene usato per copiare un file crittografato in una destinazione non crittografata, la chiamata avrà esito negativo con l'eccezione seguente: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Implementazioni

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

Eccezioni

Non si dispone dell'autorizzazione per copiare un file nella cartella di destinazione.

Vedi anche

Si applica a

CopyAsync(IStorageFolder, String, NameCollisionOption)

Crea una copia del file nella cartella specificata e rinomina la copia. Questo metodo specifica anche cosa fare se nella cartella di destinazione esiste già un file con lo stesso nome.

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)

Parametri

destinationFolder
IStorageFolder

Cartella di destinazione in cui viene creata la copia del file.

desiredNewName
String

Platform::String

winrt::hstring

Nuovo nome per la copia del file creato in destinationFolder.

option
NameCollisionOption

Uno dei valori di enumerazione che determina come gestire la collisione se esiste già un file con il valore desiredNewName specificato nella cartella di destinazione.

Restituisce

Al termine di questo metodo, restituisce un oggetto StorageFile che rappresenta la copia del file creato in destinationFolder.

Nota

Quando StorageFile.CopyAsync viene usato per copiare un file crittografato in una destinazione non crittografata, la chiamata avrà esito negativo con l'eccezione seguente: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Implementazioni

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

Eccezioni

Non si dispone dell'autorizzazione per copiare un file nella cartella di destinazione.

Vedi anche

Si applica a