public NtStatus GetFileInformation(Path path, out FileInformation fileInfo, IDokanFileInfo info)
        {
            fileInfo = default;
            return(path switch
            {
                // Dirs
                RootPath p => GetFileInformation(p, out fileInfo),
                DatabasePath p => GetFileInformation(p, out fileInfo),
                CollectionPath p => GetFileInformation(p, out fileInfo),
                DataDirectoryPath p => GetFileInformation(p, out fileInfo),
                QueryDirectoryPath p => GetFileInformation(p, out fileInfo),
                QueryEmptyDirectoryPath p => GetFileInformation(p, out fileInfo),

                // Files
                StatsPath p => GetFileInformation(p, out fileInfo),
                IndexesPath p => GetFileInformation(p, out fileInfo),
                CurrentOpPath p => GetFileInformation(p, out fileInfo),
                ServerStatusPath p => GetFileInformation(p, out fileInfo),
                BuildInfoPath p => GetFileInformation(p, out fileInfo),
                HostInfoPath p => GetFileInformation(p, out fileInfo),
                ListCommandsPath p => GetFileInformation(p, out fileInfo),
                DataDocumentPath p => GetFileInformation(p, out fileInfo),
                QueryDocumentPath p => GetFileInformation(p, out fileInfo),
                QueryAllDocumentsPath p => GetFileInformation(p, out fileInfo),

                var p => LogFailure(p)
            });
示例#2
0
        public NtStatus FindFilesWithPattern(Path path, string?searchPattern, out IList <FileInformation> files,
                                             IDokanFileInfo info)
        {
            files = Array.Empty <FileInformation>();
            return(path switch
            {
                RootPath p => FindFilesWithPattern(p, searchPattern, out files),
                DatabasePath p => FindFilesWithPattern(p, searchPattern, out files),
                CollectionPath p => FindFilesWithPattern(p, searchPattern, out files),
                DataDirectoryPath p => FindFilesWithPattern(p, searchPattern, out files),
                QueryDirectoryPath p => FindFilesWithPattern(p, searchPattern, out files),
                QueryEmptyDirectoryPath p => FindFilesWithPattern(p, searchPattern, out files),

                var p => LogFailure(path)
            });