Made a storage provider interface and both classic and avalonia impl.
This commit is contained in:
36
Progrart.Core/Storage/ClassicStorageProvider.cs
Normal file
36
Progrart.Core/Storage/ClassicStorageProvider.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
namespace Progrart.Core.Storage
|
||||
{
|
||||
public class ClassicStorageProvider : IStorageProvider
|
||||
{
|
||||
public DirectoryInfo BaseDirectory;
|
||||
|
||||
public ClassicStorageProvider(DirectoryInfo baseDirectory)
|
||||
{
|
||||
BaseDirectory = baseDirectory;
|
||||
}
|
||||
|
||||
public async Task<Stream?> TryOpenRead(string path)
|
||||
{
|
||||
try
|
||||
{
|
||||
return File.OpenRead(Path.Combine(BaseDirectory.FullName, path));
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<Stream?> TryOpenWrite(string path)
|
||||
{
|
||||
try
|
||||
{
|
||||
return File.OpenWrite(Path.Combine(BaseDirectory.FullName, path));
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user