次の方法で共有


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

ファイルのコピーが作成されるコピー先フォルダー。

戻り値

このメソッドが完了すると、destinationFolder で作成されたファイルのコピーを表す StorageFile が返されます。

実装

属性

例外

コピー先フォルダーにファイルをコピーするアクセス許可がありません。

次の例では、指定したフォルダーにファイルをコピーし、 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
});

注釈

このメソッドは、既定で CreationCollisionOption 列挙体の FailIfExists 値を使用します。 つまり、同じ名前のファイルが既にコピー先フォルダーに存在する場合、このメソッドは例外を発生させます。 ファイル名の競合を別の方法で処理する場合は、 CopyAsync(IStorageFolder, String, NameCollisionOption) オーバーロードされたメソッドを呼び出します。

Note

暗号化されていない宛先に暗号化されたファイルをコピーするために 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

destinationFolder で作成されたファイルのコピーの新しい名前。

戻り値

このメソッドが完了すると、destinationFolder で作成されたファイルのコピーを表す StorageFile が返されます。

Note

暗号化されていない宛先に暗号化されたファイルをコピーするために 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

destinationFolder で作成されたファイルのコピーの新しい名前。

option
NameCollisionOption

指定した desiredNewName を持つファイルが移動先フォルダーに既に存在する場合の競合の処理方法を決定する列挙値の 1 つ。

戻り値

このメソッドが完了すると、destinationFolder で作成されたファイルのコピーを表す StorageFile が返されます。

Note

暗号化されていない宛先に暗号化されたファイルをコピーするために 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)
属性

例外

コピー先フォルダーにファイルをコピーするアクセス許可がありません。

こちらもご覧ください

適用対象