示例#1
0
        private List<FileInfo> GetFilesFromDir(ScannerArgument argument)
        {
            List<FileInfo> searchFiles = new List<FileInfo>();
            foreach (string ext in argument.FileExtensions)
            {
                FileInfo[] files = argument.Directory.GetFiles("*" + ext, argument.SearchOption);
                searchFiles.AddRange(files);
            }

            //Windows medtager "minsang.mp3-missing" uden følgende tjek...
            for (int i = 0; i < searchFiles.Count; i++)
            {
                bool ok = false;
                foreach (string ext in argument.FileExtensions)
                    if (searchFiles[i].Extension.ToLower() == ext)
                    {
                        ok = true;
                        break;
                    }
                if (!ok)
                {
                    searchFiles.RemoveAt(i);
                    i--;
                }
            }

            return searchFiles;
        }
示例#2
0
        public ScannerTracer RunScannerAsync(params string[] ignoreFiles)
        {
            if (!directory.Exists)
                throw new ArgumentException("Directory must exist.", "directory");

            if (IsRunning)
                throw new InvalidOperationException("RunScannerAsync is already running.");

            isrunning = true;

            ScannerArgument arg = new ScannerArgument(directory, searchoption,
                parseAdd, parseUpdate, removeDeadFiles,
                extensionList.ToArray(), existingFiles.ToArray(), ignoreFiles);

            worker.RunWorkerAsync(arg);
            return arg.Tracer;
        }