Поделиться через


StorageFile.CopyAsync Метод

Определение

Перегрузки

CopyAsync(IStorageFolder)

Создает копию файла в указанной папке.

CopyAsync(IStorageFolder, String)

Создает копию файла в указанной папке и переименовывает копию.

CopyAsync(IStorageFolder, String, NameCollisionOption)

Создает копию файла в указанной папке и переименовывает копию. Этот метод также указывает, что делать, если файл с таким именем уже существует в целевой папке.

CopyAsync(IStorageFolder)

Создает копию файла в указанной папке.

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)

Параметры

destinationFolder
IStorageFolder

Конечная папка, в которой создается копия файла.

Возвращаемое значение

После завершения этого метода возвращается файл StorageFile , представляющий копию файла, созданного в destinationFolder.

Реализации

Атрибуты

Исключения

У вас нет разрешения на копирование файла в целевую папку.

Примеры

В следующем примере файл копируется в указанную папку и выполняется переименование копии путем вызова метода CopyAsync(IStorageFolder, String, NameCollisionOption). В этом примере явно указывается значение параметра , которое заменяет файл в целевой папке, если файл с указанным именем уже существует.

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

Комментарии

Этот метод по умолчанию использует значение FailIfExists из перечисления CreationCollisionOption . То есть этот метод вызывает исключение, если файл с таким именем уже существует в целевой папке. Если вы хотите обработать конфликт имен файлов другим способом, вызовите перегруженный метод CopyAsync(IStorageFolder, String, NameCollisionOption).

Примечание

Если StorageFile.CopyAsync используется для копирования зашифрованного файла в незашифрованное место назначения, вызов завершится ошибкой со следующим исключением: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

См. также раздел

Применяется к

CopyAsync(IStorageFolder, String)

Создает копию файла в указанной папке и переименовывает копию.

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)

Параметры

destinationFolder
IStorageFolder

Конечная папка, в которой создается копия файла.

desiredNewName
String

Platform::String

winrt::hstring

Новое имя копии файла, созданной в целевой папкеFolder.

Возвращаемое значение

После завершения этого метода возвращается файл StorageFile , представляющий копию файла, созданного в destinationFolder.

Примечание

Если StorageFile.CopyAsync используется для копирования зашифрованного файла в незашифрованное место назначения, вызов завершится ошибкой со следующим исключением: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Реализации

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)
Атрибуты

Исключения

У вас нет разрешения на копирование файла в целевую папку.

См. также раздел

Применяется к

CopyAsync(IStorageFolder, String, NameCollisionOption)

Создает копию файла в указанной папке и переименовывает копию. Этот метод также указывает, что делать, если файл с таким именем уже существует в целевой папке.

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)

Параметры

destinationFolder
IStorageFolder

Конечная папка, в которой создается копия файла.

desiredNewName
String

Platform::String

winrt::hstring

Новое имя копии файла, созданной в целевой папкеFolder.

option
NameCollisionOption

Одно из значений перечисления, определяющее способ обработки конфликта, если файл с указанным desiredNewName уже существует в целевой папке.

Возвращаемое значение

После завершения этого метода возвращается файл StorageFile , представляющий копию файла, созданного в destinationFolder.

Примечание

Если StorageFile.CopyAsync используется для копирования зашифрованного файла в незашифрованное место назначения, вызов завершится ошибкой со следующим исключением: System.UnauthorizedAccessException: Access is denied. (Excep_FromHResult 0x80070005)

Реализации

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)
Атрибуты

Исключения

У вас нет разрешения на копирование файла в целевую папку.

См. также раздел

Применяется к