Ejemplo n.º 1
0
        protected override Result OpenDirectoryImpl(out IDirectory directory, string path, OpenDirectoryMode mode)
        {
            directory = default;
            path      = PathTools.Normalize(path);

            if (!FileTable.TryOpenDirectory(path, out SaveFindPosition position))
            {
                return(ResultFs.PathNotFound.Log());
            }

            directory = new SaveDataDirectory(this, position, mode);

            return(Result.Success);
        }
        protected override Result DoOpenDirectory(out IDirectory directory, U8Span path, OpenDirectoryMode mode)
        {
            UnsafeHelpers.SkipParamInit(out directory);

            Unsafe.SkipInit(out FsPath normalizedPath);

            Result rc = PathTool.Normalize(normalizedPath.Str, out _, path, false, false);

            if (rc.IsFailure())
            {
                return(rc);
            }

            if (!FileTable.TryOpenDirectory(normalizedPath, out SaveFindPosition position))
            {
                return(ResultFs.PathNotFound.Log());
            }

            directory = new SaveDataDirectory(this, position, mode);

            return(Result.Success);
        }
Ejemplo n.º 3
0
        protected override Result DoOpenDirectory(out IDirectory directory, U8Span path, OpenDirectoryMode mode)
        {
            directory = default;

            FsPath normalizedPath;

            unsafe { _ = &normalizedPath; } // workaround for CS0165

            Result rc = PathTool.Normalize(normalizedPath.Str, out _, path, false, false);

            if (rc.IsFailure())
            {
                return(rc);
            }

            if (!FileTable.TryOpenDirectory(normalizedPath, out SaveFindPosition position))
            {
                return(ResultFs.PathNotFound.Log());
            }

            directory = new SaveDataDirectory(this, position, mode);

            return(Result.Success);
        }