예제 #1
0
        private async Task OpenInnerAsync(string fileName, Func <TDocument> ifNotExists = null)
        {
            string ext = Path.GetExtension(fileName);

            string openFile = fileName;

            if (FileHandlers.ContainsKey(ext))
            {
                openFile = FileHandlers[ext].Invoke(fileName);
            }

            Document = await JsonFile.LoadAsync(openFile, ifNotExists);

            Filename = openFile;
            FileOpened?.Invoke(this, new EventArgs());
        }
예제 #2
0
        private List <FileInfo> DoScan(DirectoryInfo directory)
        {
            if (directory == null)
            {
                return(null);
            }

            var files = new List <FileInfo>();

            foreach (var file in directory.EnumerateFiles("*.*", SearchOption.AllDirectories))
            {
                if (Scanner.CancellationPending)
                {
                    return(null);
                }

                if (FileHandlers.ContainsKey(file.Extension))
                {
                    files.Add(file);
                }
            }

            return(files);
        }