01748bc5f8
Adding dispose methods to AxiosFile objects Adding extended log to AxiosLog Fixing issue in CommandConsole where the first line would not be displayed Adding commands to commandconsole
89 lines
2.7 KiB
C#
89 lines
2.7 KiB
C#
using System.IO;
|
|
using System.IO.IsolatedStorage;
|
|
using Axios.Engine.Interfaces;
|
|
using System;
|
|
|
|
namespace Axios.Engine.File
|
|
{
|
|
public class AxiosIsolatedFile : AxiosFile, IAxiosFile
|
|
{
|
|
protected IsolatedStorageFileStream _fs;
|
|
public AxiosIsolatedFile(string filename)
|
|
{
|
|
this._filename = filename;
|
|
}
|
|
|
|
public override void WriteData(string data, FileMode mode)
|
|
{
|
|
//Make sure that a proper mode is passed
|
|
if (mode == FileMode.Append
|
|
|| mode == FileMode.Create
|
|
|| mode == FileMode.CreateNew
|
|
|| mode == FileMode.Truncate)
|
|
{
|
|
#if WINDOWS
|
|
IsolatedStorageFile savegameStorage = IsolatedStorageFile.GetUserStoreForDomain();
|
|
#else
|
|
IsolatedStorageFile savegameStorage = IsolatedStorageFile.GetUserStoreForApplication();
|
|
#endif
|
|
IsolatedStorageFileStream fs = null;
|
|
fs = savegameStorage.OpenFile(_filename, mode);
|
|
StreamWriter sw = new StreamWriter(fs);
|
|
sw.Write(data);
|
|
sw.Close();
|
|
this.Content = data;
|
|
}
|
|
}
|
|
|
|
public override string ReadData()
|
|
{
|
|
string ret = "";
|
|
#if WINDOWS
|
|
IsolatedStorageFile savegameStorage = IsolatedStorageFile.GetUserStoreForDomain();
|
|
#else
|
|
IsolatedStorageFile savegameStorage = IsolatedStorageFile.GetUserStoreForApplication();
|
|
#endif
|
|
IsolatedStorageFileStream fs = null;
|
|
fs = savegameStorage.OpenFile(_filename, System.IO.FileMode.Open);
|
|
StreamReader sr = new StreamReader(fs);
|
|
ret = sr.ReadToEnd();
|
|
sr.Close();
|
|
Content = ret;
|
|
return ret;
|
|
}
|
|
|
|
public override Stream GetStream(FileMode mode)
|
|
{
|
|
#if WINDOWS
|
|
IsolatedStorageFile savegameStorage = IsolatedStorageFile.GetUserStoreForDomain();
|
|
#else
|
|
IsolatedStorageFile savegameStorage = IsolatedStorageFile.GetUserStoreForApplication();
|
|
#endif
|
|
_fs = null;
|
|
_fs = savegameStorage.OpenFile(_filename, mode);
|
|
return (Stream)_fs;
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
// http://msdn.microsoft.com/en-us/library/system.idisposable%28v=vs.110%29.aspx
|
|
Dispose(true);
|
|
GC.SuppressFinalize(this);
|
|
}
|
|
|
|
protected virtual void Dispose(bool disposing)
|
|
{
|
|
if (disposed)
|
|
return;
|
|
|
|
if (disposing && _fs != null)
|
|
{
|
|
_fs.Close();
|
|
}
|
|
|
|
disposed = true;
|
|
}
|
|
|
|
}
|
|
}
|