У нас есть несколько приложений для Windows 8 Store C++, которым необходимо поддерживать файлы конфигурации и данных.Приложения Windows C++ Приложения не могут создавать файлы с помощью функции fopen() под Windows 8.1
Файлы написаны в подпапках Windows::Storage::ApplicationData::Current->LocalFolder
. Пример:
C:\Users\<username>\AppData\Local\Packages\<packagename>\LocalState\SubFolder1\SubFolder2\data.txt
В Windows 8.1 мы получили несколько сообщений от пользователей, которые говорят, состояние не запоминается между приложение заклятий. При внимательном файлы не создаются (вложенные папки действительно созданы, но нет файлов внутри них)
Примечание:
Subfolders создано с использованием
CreateDirectory()
, файлы, созданные с помощьюfopen()
Файлы создаются/открываются с использованием абсолютных путей
Это всегда работало под управлением Windows 8.0, и с тех пор этот код не был изменен. Фактически, в одном из наших пользовательских отчетов было указано, что приложение сохраняет файлы под Windows 8.0, но перестало экономить после обновления пользователя до Windows 8.1.
Мы не смогли реплицировать проблему локально с помощью Windows 8.1. Мы не уверены, насколько распространен этот отказ, но мы считаем, что большинство пользователей не затронуты. У уязвимых пользователей нет специальной конфигурации аппаратного и программного обеспечения.
Если пользователь влияет, то файлы не будут последовательно никогда не сохраняются, даже после повторной попытки или удалить и повторно установить приложение (то есть, это не тот случай, перемежающейся неисправности)
Это трудно получить сообщение об ошибке (i) редкость проблемы (ii) тот факт, что журналы, которые раскрывают это, по определению не сохраняются, и (iii) приложения не требуют подключения к Интернету, поэтому нет альтернативного канала связи.
Может кто-нибудь подумать о какой-либо причине, почему это может произойти под Windows 8.1?
'errno' /' GetLastError() '? Но сообщайте об этом Microsoft, у них все еще есть сотрудники, которые заботятся о таких регрессиях. – MSalters
@MSalters: трудно получить информацию об ошибке (i) редкость проблемы (ii) тот факт, что журналы, которые обнаружат это, по определению не сохранены, и (iii) приложения не требуют подключения к интернету, поэтому нет альтернативного канала связи. Решение заключалось бы в том, чтобы как-то привязать сборку к тому, чтобы каким-то образом захватить/сообщить об этой ошибке, но я не решаюсь сделать это на живых сборках по довольно очевидным причинам :) – Xaxx
Дикое предположение: содержат ли ваши имена несимвольные символы? – SigTerm