Esempio n. 1
0
        private async Task QueryFileAsync(StorageFolder storageFolder, ConditionsResult conditions, int indent)
        {
            foreach (StorageFile file in await storageFolder.GetFilesAsync())
            {
                PringFile(indent, file);

                await FileConditionsAsync(conditions, file);
            }
        }
Esempio n. 2
0
        private async Task QueryFolderAsync(StorageFolder storageFolder, ConditionsResult conditions, int indent)
        {
            await QueryFileAsync(storageFolder, conditions, indent);

            foreach (StorageFolder folder in await storageFolder.GetFoldersAsync())
            {
                PrintFolder(indent, folder);

                await FolderConditionsAsync(folder, conditions, indent);
            }
        }
Esempio n. 3
0
        public static ConditionsResult CondotionsIsNull(ConditionsResult conditions)
        {
            ConditionsResult result = new ConditionsResult
            {
                IncludeFile   = DicIsNull(conditions.IncludeFile),
                IncludeFolder = DicIsNull(conditions.IncludeFolder),
                ExcludeFile   = DicIsNull(conditions.ExcludeFile),
                ExcludeFolder = DicIsNull(conditions.ExcludeFolder)
            };

            return(result);
        }
Esempio n. 4
0
        private async Task FileConditionsAsync(ConditionsResult conditionsResult, StorageFile file)
        {
            foreach (KeyValuePair <Conditions, string[]> pair in conditionsResult.ExcludeFile)
            {
                switch (pair.Key)
                {
                case Conditions.FileFullName:
                    foreach (string condition in pair.Value)
                    {
                        if (file.Name.Equals(condition))
                        {
                            return;
                        }
                    }
                    break;

                case Conditions.FilePartName:
                    foreach (string condition in pair.Value)
                    {
                        if (file.Name.Contains(condition))
                        {
                            return;
                        }
                    }
                    break;

                case Conditions.FileNamePrefix:
                    foreach (string condition in pair.Value)
                    {
                        if (file.Name.StartsWith(condition))
                        {
                            return;
                        }
                    }
                    break;

                case Conditions.FileNameSuffix:
                    foreach (string condition in pair.Value)
                    {
                        if (file.Name.EndsWith(condition))
                        {
                            return;
                        }
                    }
                    break;
                }
            }

            Dictionary <Conditions, string[]> fileConditions = conditionsResult.IncludeFile;

            if (fileConditions.Count == 0)
            {
                await ResultDataAsync(file);

                return;
            }

            bool fileFlag = false;

            foreach (KeyValuePair <Conditions, string[]> pair in fileConditions)
            {
                switch (pair.Key)
                {
                case Conditions.FileFullName:
                    foreach (string condition in pair.Value)
                    {
                        if (file.Name.Equals(condition))
                        {
                            fileFlag = true;
                        }
                    }
                    break;

                case Conditions.FilePartName:
                    foreach (string condition in pair.Value)
                    {
                        if (file.Name.Contains(condition))
                        {
                            fileFlag = true;
                        }
                    }
                    break;

                case Conditions.FileNamePrefix:
                    foreach (string condition in pair.Value)
                    {
                        if (file.Name.StartsWith(condition))
                        {
                            fileFlag = true;
                        }
                    }
                    break;

                case Conditions.FileNameSuffix:
                    foreach (string condition in pair.Value)
                    {
                        if (file.Name.EndsWith(condition))
                        {
                            fileFlag = true;
                        }
                    }
                    break;
                }

                if (fileFlag)
                {
                    await ResultDataAsync(file);
                }
            }
        }
Esempio n. 5
0
        private async Task FolderConditionsAsync(StorageFolder folder, ConditionsResult conditionsResult, int indent)
        {
            bool includeFlag = false;

            Dictionary <Conditions, string[]> includeDic = conditionsResult.IncludeFolder;
            Dictionary <Conditions, string[]> excludeDic = conditionsResult.ExcludeFolder;

            foreach (KeyValuePair <Conditions, string[]> pair in excludeDic)
            {
                switch (pair.Key)
                {
                case Conditions.FolderFullName:
                    foreach (string condition in pair.Value)
                    {
                        if (folder.Name.Equals(condition))
                        {
                            return;
                        }
                    }
                    break;

                case Conditions.FolderPartName:
                    foreach (string condition in pair.Value)
                    {
                        if (folder.Name.Contains(condition))
                        {
                            return;
                        }
                    }
                    break;

                case Conditions.FolderNamePrefix:
                    foreach (string condition in pair.Value)
                    {
                        if (folder.Name.StartsWith(condition))
                        {
                            return;
                        }
                    }
                    break;

                case Conditions.FolderNameSuffix:
                    foreach (string condition in pair.Value)
                    {
                        if (folder.Name.EndsWith(condition))
                        {
                            return;
                        }
                    }
                    break;
                }
            }

            foreach (KeyValuePair <Conditions, string[]> pair in includeDic)
            {
                switch (pair.Key)
                {
                case Conditions.FolderFullName:
                    foreach (string condition in pair.Value)
                    {
                        if (folder.Name.Equals(condition))
                        {
                            includeFlag = true;
                        }
                    }
                    break;

                case Conditions.FolderPartName:
                    foreach (string condition in pair.Value)
                    {
                        if (folder.Name.Contains(condition))
                        {
                            includeFlag = true;
                        }
                    }
                    break;

                case Conditions.FolderNamePrefix:
                    foreach (string condition in pair.Value)
                    {
                        if (folder.Name.StartsWith(condition))
                        {
                            includeFlag = true;
                        }
                    }
                    break;

                case Conditions.FolderNameSuffix:
                    foreach (string condition in pair.Value)
                    {
                        if (folder.Name.EndsWith(condition))
                        {
                            includeFlag = true;
                        }
                    }
                    break;
                }

                if (includeFlag)
                {
                    break;
                }
            }

            if (includeFlag || (includeDic.Count == 0))
            {
                await QueryFolderAsync(folder, conditionsResult, indent + 2);
            }
        }
Esempio n. 6
0
        public async Task <DataResult> StartCollectAsync(StorageFolder storageFolder, ConditionsResult conditions)
        {
            Result.FolderStructure += "根目录:" + storageFolder.Path + "\n";

            await QueryFolderAsync(storageFolder, conditions, 2);

            return(Result);
        }