115 lines
2.9 KiB
C#
115 lines
2.9 KiB
C#
using System;
|
|
using System.IO;
|
|
using ANX.Framework.NonXNA.Development;
|
|
using ANX.Framework.NonXNA.PlatformSystem;
|
|
|
|
// This file is part of the ANX.Framework created by the
|
|
// "ANX.Framework developer group" and released under the Ms-PL license.
|
|
// For details see: http://anxframework.codeplex.com/license
|
|
|
|
namespace ANX.Framework.Storage
|
|
{
|
|
[PercentageComplete(100)]
|
|
[Developer("AstrorEnales")]
|
|
[TestState(TestStateAttribute.TestState.Untested)]
|
|
public class StorageContainer : IDisposable
|
|
{
|
|
private readonly INativeStorageContainer nativeImplementation;
|
|
|
|
#region Public
|
|
public event EventHandler<EventArgs> Disposing;
|
|
|
|
public string DisplayName { get; private set; }
|
|
public StorageDevice StorageDevice { get; private set; }
|
|
public bool IsDisposed { get; private set; }
|
|
internal PlayerIndex PlayerIndex { get; private set; }
|
|
#endregion
|
|
|
|
internal StorageContainer(StorageDevice device, PlayerIndex player, string displayName)
|
|
{
|
|
StorageDevice = device;
|
|
DisplayName = displayName;
|
|
PlayerIndex = player;
|
|
|
|
nativeImplementation = PlatformSystem.Instance.CreateStorageContainer(this);
|
|
}
|
|
|
|
~StorageContainer()
|
|
{
|
|
Dispose();
|
|
}
|
|
|
|
public void CreateDirectory(string directory)
|
|
{
|
|
nativeImplementation.CreateDirectory(directory);
|
|
}
|
|
|
|
public Stream CreateFile(string file)
|
|
{
|
|
return nativeImplementation.CreateFile(file);
|
|
}
|
|
|
|
public void DeleteDirectory(string directory)
|
|
{
|
|
nativeImplementation.DeleteDirectory(directory);
|
|
}
|
|
|
|
public void DeleteFile(string file)
|
|
{
|
|
nativeImplementation.DeleteFile(file);
|
|
}
|
|
|
|
public bool DirectoryExists(string directory)
|
|
{
|
|
return nativeImplementation.DirectoryExists(directory);
|
|
}
|
|
|
|
public bool FileExists(string file)
|
|
{
|
|
return nativeImplementation.FileExists(file);
|
|
}
|
|
|
|
public string[] GetDirectoryNames()
|
|
{
|
|
return GetDirectoryNames("*");
|
|
}
|
|
|
|
public string[] GetDirectoryNames(string searchPattern)
|
|
{
|
|
return nativeImplementation.GetDirectoryNames(searchPattern);
|
|
}
|
|
|
|
public string[] GetFileNames()
|
|
{
|
|
return GetFileNames("*");
|
|
}
|
|
|
|
public string[] GetFileNames(string searchPattern)
|
|
{
|
|
return nativeImplementation.GetFileNames(searchPattern);
|
|
}
|
|
|
|
public Stream OpenFile(string file, FileMode fileMode)
|
|
{
|
|
return OpenFile(file, fileMode, FileAccess.ReadWrite, FileShare.None);
|
|
}
|
|
|
|
public Stream OpenFile(string file, FileMode fileMode, FileAccess fileAccess)
|
|
{
|
|
return OpenFile(file, fileMode, fileAccess, FileShare.None);
|
|
}
|
|
|
|
public Stream OpenFile(string file, FileMode fileMode, FileAccess fileAccess, FileShare fileShare)
|
|
{
|
|
return nativeImplementation.OpenFile(file, fileMode, fileAccess, fileShare);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
if (Disposing != null)
|
|
Disposing(this, EventArgs.Empty);
|
|
IsDisposed = true;
|
|
}
|
|
}
|
|
}
|