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
70 lines
1.8 KiB
C#
70 lines
1.8 KiB
C#
using System.IO;
|
|
using System;
|
|
|
|
using Axios.Engine.Interfaces;
|
|
|
|
namespace Axios.Engine.File
|
|
{
|
|
public class AxiosRegularFile : AxiosFile, IAxiosFile, IDisposable
|
|
{
|
|
protected FileStream _fs;
|
|
public AxiosRegularFile(string file)
|
|
{
|
|
_filename = file;
|
|
}
|
|
|
|
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)
|
|
{
|
|
FileStream fs = new FileStream(_filename, mode);
|
|
StreamWriter sw = new StreamWriter(fs);
|
|
sw.Write(data);
|
|
sw.Close();
|
|
|
|
}
|
|
}
|
|
|
|
public override string ReadData()
|
|
{
|
|
string ret = "";
|
|
FileStream fs = new FileStream(_filename, FileMode.Open);
|
|
StreamReader sr = new StreamReader(fs);
|
|
ret = sr.ReadToEnd();
|
|
sr.Close();
|
|
return ret;
|
|
}
|
|
|
|
public override Stream GetStream(FileMode mode)
|
|
{
|
|
_fs = new FileStream(_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;
|
|
}
|
|
}
|
|
}
|