예제 #1
0
        public static void CheckFilesInSubDir(DirectoryInfo directory, NumberOfFiles allFiles)
        {
            if (directory.GetFiles().Any())
            {
                foreach (var file in directory.GetFiles())
                {
                    try
                    {
                        long size = file.Length <= (long)FileSize.Less10
                                ? 10 : file.Length > (long)FileSize.Between10 && file.Length <= (long)FileSize.Between50
                                ? 50 : file.Length >= (long)FileSize.MoreThan100
                                ? 100 : 0;
                        switch (size)
                        {
                            case 10: allFiles.Less10 = allFiles.Less10 + 1; break;
                            case 50: allFiles.Between10And50 = allFiles.Between10And50 + 1; break;
                            case 100: allFiles.MoreThan100 = allFiles.MoreThan100 + 1; break;
                        }
                    }
                    catch (DirectoryNotFoundException ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    catch (UnauthorizedAccessException UAEx)
                    {
                        Console.WriteLine(UAEx.Message);
                    }
                    catch (PathTooLongException PathEx)
                    {
                        Console.WriteLine(PathEx.Message);
                    }

                }
            }
        }
예제 #2
0
        public static void CheckAllDirectories(string directory, NumberOfFiles allFiles)
        {
            DirectoryInfo dirInfo = new DirectoryInfo(directory);
            if (dirInfo.Exists)
            {
                //check in current folder
                CheckFilesInSubDir(dirInfo, allFiles);

                //check in subfolders
                foreach (var dir in dirInfo.GetDirectories())
                {
                    /*
                    bool error = false;
                    if(dir.Attributes.HasFlag(FileAttributes.Hidden))
                        error = true;

                    bool access = dir.GetAccessControl().AreAuditRulesProtected;
                    access = dir.GetAccessControl().AreAccessRulesCanonical;*/

                    try
                    {
                        CheckFilesInSubDir(dir, allFiles);
                        CheckAllDirectories(dir.FullName, allFiles);
                    }
                    catch (UnauthorizedAccessException UAEx)
                    {
                        Console.WriteLine(UAEx.Message);
                    }
                    catch (PathTooLongException PathEx)
                    {
                        Console.WriteLine(PathEx.Message);
                    }
                }
            }
            return;
        }