Move path splitting to VFS.

This commit is contained in:
2020-09-03 00:39:05 +01:00
parent 9703a2210b
commit 4e01e5ebf1
2 changed files with 10 additions and 5 deletions

View File

@@ -96,7 +96,7 @@ namespace RomRepoMgr.Core.Filesystem
{
stat = new Stat();
string[] pieces = path.Split("/", StringSplitOptions.RemoveEmptyEntries);
string[] pieces = _vfs.SplitPath(path);
if(pieces.Length == 0)
{
@@ -275,7 +275,7 @@ namespace RomRepoMgr.Core.Filesystem
protected override Errno OnOpenHandle(string path, OpenedPathInfo info)
{
string[] pieces = path.Split("/", StringSplitOptions.RemoveEmptyEntries);
string[] pieces = _vfs.SplitPath(path);
if(pieces.Length == 0)
return Errno.EISDIR;
@@ -520,7 +520,7 @@ namespace RomRepoMgr.Core.Filesystem
{
bytesWritten = 0;
string[] pieces = path.Split("/", StringSplitOptions.RemoveEmptyEntries);
string[] pieces = _vfs.SplitPath(path);
if(pieces.Length == 0)
return Errno.ENODATA;
@@ -689,7 +689,7 @@ namespace RomRepoMgr.Core.Filesystem
{
names = null;
string[] pieces = path.Split("/", StringSplitOptions.RemoveEmptyEntries);
string[] pieces = _vfs.SplitPath(path);
if(pieces.Length == 0)
return 0;
@@ -1071,7 +1071,7 @@ namespace RomRepoMgr.Core.Filesystem
protected override Errno OnAccessPath(string path, AccessModes mode)
{
string[] pieces = path.Split("/", StringSplitOptions.RemoveEmptyEntries);
string[] pieces = _vfs.SplitPath(path);
if(pieces.Length == 0)
return mode.HasFlag(AccessModes.W_OK) ? Errno.EROFS : 0;

View File

@@ -1,5 +1,6 @@
using System;
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using RomRepoMgr.Database;
@@ -64,5 +65,9 @@ namespace RomRepoMgr.Core.Filesystem
totalSize = (ulong)ctx.Files.Where(f => f.IsInRepo).Sum(f => (double)f.Size);
files = (ulong)ctx.Files.Count(f => f.IsInRepo);
}
internal string[] SplitPath(string path) =>
path.Split(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "\\" : "/",
StringSplitOptions.RemoveEmptyEntries);
}
}