Как скопировать файлы из установленного места в изолированное хранилище в Windows Phone 8

0

Я разрабатываю приложение для WP8 с помощью cocos2dx. Я не могу найти функцию копирования, которая помогает мне копировать файлы из установленного местоположения в изолированное хранилище. Кто-нибудь знает как это сделать. Пожалуйста помоги

  • 0
    Я не знаком с cocos2dx и c ++, но stackoverflow.com/questions/20537820/… является примером в c # для получения файла из установленного расположения
  • 0
    @Jaihind Спасибо, но я ищу функцию в C ++
Теги:
cocos2d-x
windows-phone-8

1 ответ

0

Взгляните на образец "Мраморная игра" от Microsoft - он содержит множество иллюстративных фрагментов кода. Например, это небольшое изменение загрузки данных (асинхронно):

    concurrency::task<Platform::Array<byte>^> ReadDataAsync(
        _In_ Windows::Storage::StorageFolder^ location,
        _In_ Platform::String^ filename
        )
    {
        return concurrency::task<Windows::Storage::StorageFile^>(location->GetFileAsync(filename)).then([=](Windows::Storage::StorageFile^ file)
        {
            return file->OpenReadAsync();
        }).then([=](Windows::Storage::Streams::IRandomAccessStreamWithContentType^ stream)
        {
            uint32 fileSize = static_cast<uint32>(stream->Size);
            auto reader = ref new Windows::Storage::Streams::DataReader(stream);

            return concurrency::task<uint32>(reader->LoadAsync(fileSize)).then([=](uint32 count)
            {
                auto fileData = ref new Platform::Array<byte>(fileSize);
                reader->ReadBytes(fileData);
                return fileData;
            });
        });
    }

Как использовать (предположение: у вас есть my_data.xml, включенный в ваш проект, и "Content = True")

        PCWSTR XML_FILE = L"my_data.xml"; // pay attention this is wide string
        auto folder = Windows::ApplicationModel::Package::Current->InstalledLocation;
        auto file = ref new Platform::String(XML_FILE);

        concurrency::task<Platform::Array<byte>^> data_task = ReadDataAsync(folder, file);
        concurrency::task_status res = data_task.wait();
        Platform::Array<byte>^ data_buf = data_task.get();

Теперь у вас есть буфер данных, не стесняйтесь его потреблять или сохраняйте в изолированном хранилище по вашим потребностям.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню