2016-07-27 4 views
0

Согласно документу this, Xamarin должен иметь возможность записывать файлы в личное хранилище приложений. Проблема в том, что я использовал XDocument.Save (строковый путь) и XMLWriter для сохранения моих данных XML в файл, но ничего не происходит! Нет ошибки, но файл также не создан. Если вы используете другой путь, будет выбрано исключение, которое не будет иметь доступ к этому пространству, а это значит, что код пытается записать файл, но когда вы даете ему правовое пространство, он ничего не пишет. я использую:XDocument Xamarin не сохраняет файлы

System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) 

, чтобы получить свой путь, а затем добавить «/file.xml» к нему. Я даю этот путь к

XDocument doc = new XDocument(); 
doc = XDocument.Parse("<names></names>"); 
doc.Save(path); 

Я попытался это решение в окнах, и он работает, но не в Xamarin.Android

ответ

0

Что касается спасения, я был в состоянии сделать это после того, как дать мое приложение WRITE_EXTERNAL_STORAGE. Однако это кажется странным ... поскольку я мог писать файлы через File.WriteAllText в том же месте ... и мой код никогда не делал никаких исключений о незаконном доступе или что-то еще. После этой проблемы произошла еще одна странная вещь. XDocument.Save написал файл, но позже, когда он захотел загрузить его, вышло исключение из «XML-декларации» ... нечетная часть - это XDocument.Save сама записывает эту часть автоматически, и это не может быть ошибкой! Когда я проверил файл, все было в порядке. Итак, я пришел к выводу, что XDocument не работает в Xamarin (так как я использовал точный код в Windows без каких-либо проблем), или мое устройство Android не работает. Оба сценария маловероятны.