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


StorageFolder.CreateFileAsync Метод

Определение

Перегрузки

CreateFileAsync(String)

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

CreateFileAsync(String, CreationCollisionOption)

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

CreateFileAsync(String)

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

public:
 virtual IAsyncOperation<StorageFile ^> ^ CreateFileAsync(Platform::String ^ desiredName) = CreateFileAsync;
/// [Windows.Foundation.Metadata.Overload("CreateFileAsyncOverloadDefaultOptions")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<StorageFile> CreateFileAsync(winrt::hstring const& desiredName);
[Windows.Foundation.Metadata.Overload("CreateFileAsyncOverloadDefaultOptions")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<StorageFile> CreateFileAsync(string desiredName);
function createFileAsync(desiredName)
Public Function CreateFileAsync (desiredName As String) As IAsyncOperation(Of StorageFile)

Параметры

desiredName
String

Platform::String

winrt::hstring

Имя нового файла, создаваемого в текущей папке.

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

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

Реализации

M:Windows.Storage.IStorageFolder.CreateFileAsync(System.String) M:Windows.Storage.IStorageFolder.CreateFileAsync(Platform::String) M:Windows.Storage.IStorageFolder.CreateFileAsync(winrt::hstring)
Атрибуты

Исключения

Имя файла содержит недопустимые символы или неправильный формат имени файла. Проверьте значение desiredName.

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

Примеры

В следующем примере показано, как создать файл в текущей папке путем вызова перегруженного метода CreateFileAsync (String, CreationCollisionOption). В этом примере явно указывается значение для параметров , которое приводит к сбою операции, если файл с указанным desiredName уже существует в текущей папке.

using Windows.Storage;
using System.Threading.Tasks;

// Get the app's local folder.
StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

// Create a new file in the current folder.
// Raise an exception if the file already exists.
string desiredName = "test.txt";
StorageFile newFile = await localFolder.CreateFileAsync(desiredName, CreationCollisionOption.FailIfExists);
IAsyncAction MainPage::ExampleCoroutineAsync()
{
    // Gets the app's local folder.
    Windows::Storage::StorageFolder localFolder{ Windows::Storage::ApplicationData::Current().LocalFolder() };

    // Create a new file in the current folder, and throw an exception if the file already exists.
    std::wstring desiredName{ L"test.txt" };
    StorageFile newFile{ co_await localFolder.CreateFileAsync(desiredName, Windows::Storage::CreationCollisionOption::FailIfExists) };
    // Do something with the new file.
}
//Gets the app's local folder
StorageFolder^ localFolder = ApplicationData::Current->LocalFolder;

//Create a new file in the current folder
// Raise an exception if the file already exists
String^ desiredName = "test.txt";
auto createFileTask = create_task(localFolder->CreateFileAsync(desiredName, Windows::Storage::CreationCollisionOption::FailIfExists));
createFileTask.then([](StorageFile^ newFile)
{
  //Do something with the new file.
 });

Комментарии

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

При попытке создать файл в виртуальной папке, такой как библиотека, или папка, представляющая контейнер для группы файлов (например, возвращаемое значение из некоторых перегрузок метода GetFoldersAsync ), метод CreateFileAsync может завершиться ошибкой.

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

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

CreateFileAsync(String, CreationCollisionOption)

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

public:
 virtual IAsyncOperation<StorageFile ^> ^ CreateFileAsync(Platform::String ^ desiredName, CreationCollisionOption options) = CreateFileAsync;
/// [Windows.Foundation.Metadata.Overload("CreateFileAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperation<StorageFile> CreateFileAsync(winrt::hstring const& desiredName, CreationCollisionOption const& options);
[Windows.Foundation.Metadata.Overload("CreateFileAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperation<StorageFile> CreateFileAsync(string desiredName, CreationCollisionOption options);
function createFileAsync(desiredName, options)
Public Function CreateFileAsync (desiredName As String, options As CreationCollisionOption) As IAsyncOperation(Of StorageFile)

Параметры

desiredName
String

Platform::String

winrt::hstring

Имя нового файла, создаваемого в текущей папке.

options
CreationCollisionOption

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

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

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

Реализации

M:Windows.Storage.IStorageFolder.CreateFileAsync(System.String,Windows.Storage.CreationCollisionOption) M:Windows.Storage.IStorageFolder.CreateFileAsync(Platform::String,Windows.Storage.CreationCollisionOption) M:Windows.Storage.IStorageFolder.CreateFileAsync(winrt::hstring,Windows.Storage.CreationCollisionOption)
Атрибуты

Исключения

Вы указали CreationCollisionOption.FailIfExists и файл с указанным desiredName уже существует в текущей папке.

Неправильный формат имени файла. Проверьте значение desiredName.

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

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

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