- Initial commit
This commit is contained in:
@ -0,0 +1,87 @@
|
||||
#define _ENABLE_LOGGING
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace Best.HTTP.Shared.PlatformSupport.FileSystem
|
||||
{
|
||||
public sealed class DefaultIOService : IIOService
|
||||
{
|
||||
public Stream CreateFileStream(string path, FileStreamModes mode)
|
||||
{
|
||||
#if ENABLE_LOGGING
|
||||
if (HTTPManager.Logger.IsDiagnostic)
|
||||
HTTPManager.Logger.Verbose(nameof(DefaultIOService), $"{nameof(CreateFileStream)}('{path}', {mode})");
|
||||
#endif
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case FileStreamModes.Create:
|
||||
return new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read);
|
||||
case FileStreamModes.OpenRead:
|
||||
return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read /*, 64 * 1024, FileOptions.SequentialScan*/);
|
||||
case FileStreamModes.OpenReadWrite:
|
||||
return new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read);
|
||||
case FileStreamModes.Append:
|
||||
return new FileStream(path, FileMode.Append);
|
||||
}
|
||||
|
||||
throw new NotImplementedException($"{nameof(DefaultIOService)}.{nameof(CreateFileStream)} - '{mode}' not implemented!");
|
||||
}
|
||||
|
||||
public void DirectoryCreate(string path)
|
||||
{
|
||||
#if ENABLE_LOGGING
|
||||
if (HTTPManager.Logger.IsDiagnostic)
|
||||
HTTPManager.Logger.Verbose(nameof(DefaultIOService), $"{nameof(DirectoryCreate)}('{path}')");
|
||||
#endif
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
|
||||
public void DirectoryDelete(string path) => Directory.Delete(path, true);
|
||||
|
||||
public bool DirectoryExists(string path)
|
||||
{
|
||||
bool exists = Directory.Exists(path);
|
||||
|
||||
#if ENABLE_LOGGING
|
||||
if (HTTPManager.Logger.IsDiagnostic)
|
||||
HTTPManager.Logger.Verbose(nameof(DefaultIOService), $"{nameof(DirectoryExists)}('{path}', {exists})");
|
||||
#endif
|
||||
|
||||
return exists;
|
||||
}
|
||||
|
||||
public string[] GetFiles(string path)
|
||||
{
|
||||
var files = Directory.GetFiles(path);
|
||||
|
||||
#if ENABLE_LOGGING
|
||||
if (HTTPManager.Logger.IsDiagnostic)
|
||||
HTTPManager.Logger.Verbose(nameof(DefaultIOService), $"{nameof(GetFiles)}('{path}', {files?.Length})");
|
||||
#endif
|
||||
|
||||
return files;
|
||||
}
|
||||
|
||||
public void FileDelete(string path)
|
||||
{
|
||||
#if ENABLE_LOGGING
|
||||
if (HTTPManager.Logger.IsDiagnostic)
|
||||
HTTPManager.Logger.Verbose(nameof(DefaultIOService), $"{nameof(FileDelete)}('{path}')");
|
||||
#endif
|
||||
File.Delete(path);
|
||||
}
|
||||
|
||||
public bool FileExists(string path)
|
||||
{
|
||||
bool exists = File.Exists(path);
|
||||
|
||||
#if ENABLE_LOGGING
|
||||
if (HTTPManager.Logger.IsDiagnostic)
|
||||
HTTPManager.Logger.Verbose(nameof(DefaultIOService), $"{nameof(FileExists)}('{path}', {exists})");
|
||||
#endif
|
||||
|
||||
return exists;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user