Я разрабатываю приложение для WP8 с помощью cocos2dx. Я не могу найти функцию копирования, которая помогает мне копировать файлы из установленного местоположения в изолированное хранилище. Кто-нибудь знает как это сделать. Пожалуйста помоги
Взгляните на образец "Мраморная игра" от 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();
Теперь у вас есть буфер данных, не стесняйтесь его потреблять или сохраняйте в изолированном хранилище по вашим потребностям.