Example #1
0
        private static void MapInnerDirectory(Folder folder, string directory)
        {
            try
            {
                DirectoryInfo directoryInfo = new DirectoryInfo(directory);
                DirectoryInfo[] subDirectories = directoryInfo.GetDirectories();
                folder.SubFolders = new Folder[subDirectories.Length];
                for (int i = 0; i < subDirectories.Length; i++)
                {
                    var newFolder = new Folder(subDirectories[i].Name);
                    folder.SubFolders[i] = newFolder;
                    MapInnerDirectory(newFolder, subDirectories[i].FullName);
                }

                FileInfo[] filesInfo = directoryInfo.GetFiles();
                folder.Files = new File[filesInfo.Length];

                for (int i = 0; i < filesInfo.Length; i++)
                {
                    var newFile = new File(filesInfo[i].Name, filesInfo[i].Length);
                    folder.Files[i] = newFile;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Example #2
0
 private static Folder MapFolder(string directory)
 {
     DirectoryInfo directoryInfo = new DirectoryInfo(directory);
     var folderName = directoryInfo.Name;
     var newFolder = new Folder(folderName);
     MapInnerDirectory(newFolder, directory);
     return newFolder;
 }
Example #3
0
        private static long SumFilesSizeDFS(Folder folder, ref long size)
        {
            for (int i = 0; i < folder.SubFolders.Length; i++)
            {
                SumFilesSizeDFS(folder.SubFolders[i], ref size);
            }

            for (int i = 0; i < folder.Files.Length; i++)
            {
                size += folder.Files[i].Size;
            }

            return size;
        }
Example #4
0
 private static long CalculateDirectorySize(Folder folder)
 {
     long initialSize = 0;
     var size = SumFilesSizeDFS(folder, ref initialSize);
     return size;
 }