StorageFile.CopyAsync メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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)
実装
- 属性
例外
コピー先フォルダーにファイルをコピーするアクセス許可がありません。
こちらもご覧ください
適用対象
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)
実装
- 属性
例外
コピー先フォルダーにファイルをコピーするアクセス許可がありません。