如何在xamarin表单中动态保存文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在xamarin表单中动态保存文件相关的知识,希望对你有一定的参考价值。
我想以xamarin形式动态保存文件,并在按钮单击中将该文件中包含的数据转换为json对象。如何才能这样做
这是我创建文件并将内容写入该文件的代码
public void CreateFile(LayerClass _data)
{
string _fileName = _path + _data.FileName;
try
{
if (!File.Exists(_fileName))
{
File.Create(_fileName);
DownLoadData(_data);
WriteLayer();
}
}
catch (Exception Ex)
{
Console.WriteLine(Ex.ToString());
}
}
public async void DownLoadData(LayerClass _data)
{
await App.DataManager.RunAsync(_data.URL);
}
public void WriteLayer()
{
if (string.IsNullOrEmpty(App._response))
{
try
{
using (StreamWriter sw = new StreamWriter(System.IO.Path.Combine(_path, _file), false))
{
sw.WriteLine(App._response);
sw.Close();
}
}
catch (Exception ex)
{
}
}
}
当我点击按钮时我想执行这些代码
DependencyService.Get<IHelpers>().ConvertObj(_temp.FileName);
async Task LoadData(string file)
{
GeoJSONData JsonData;
try
{
Assembly _assembly = typeof(Helpers).GetTypeInfo().Assembly;
Stream _stream = _assembly.GetManifestResourceStream(file);
if (_stream != null)
{
using (StreamReader _reader = new StreamReader(_stream))
{
var _json = _reader.ReadToEnd();
JsonData = JsonConvert.DeserializeObject<GeoJSONData>(_json);
}
}
}
catch (Exception ex)
{
string _msg = ex.Message;
}
}
public void ConvertObj(string file)
{
string _fullName = _path + file;
if(File.Exists(_fullName))
{
LoadData(_fullName);
}
}
但是我在_stream中得到了null值。我怎么能这样做。
答案
var json = JsonConvert.SerializeObject(YouObj);
/*
optionel : you can use formatting and settings if you wish
var settings = new JsonSerializerSettings();
settings.Converters.Add(new IsoDateTimeConverter
{
DateTimeFormat = "yyyy-MM-dd" //for example
});
var json = JsonConvert.SerializeObject(YouObj, Formatting.Indented, settings);
*/
var fileName = Path.Combine(Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "test.json");
try
{
if (!File.Exists(fileName))
{
using (File.Create(fileName)) { }
}
using (var fs = File.OpenWrite(fileName))
{
var data = new UTF8Encoding(true).GetBytes(json);
fs.Write(data, 0, data.Length);
}
}
catch (Exception e)
{
//TODO: exception
}
以上是关于如何在xamarin表单中动态保存文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Xamarin 表单和 C# 将 Html 数据从网站保存到文本文件