StorageFile.CopyAsync Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
- 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
- Attributi
Eccezioni
Non si dispone dell'autorizzazione per copiare un file nella cartella di destinazione.