internal virtual long LogStoreFiles(Logger logger, string prefix, File dir, MappedFileCounter mappedCounter) { if (!dir.Directory) { return(0); } File[] files = dir.listFiles(); if (files == null) { logger.Log(prefix + "<INACCESSIBLE>"); return(0); } long total = 0; // Sort by name IList <File> fileList = Arrays.asList(files); fileList.sort(System.Collections.IComparer.comparing(File.getName)); foreach (File file in fileList) { long size; string filename = file.Name; if (file.Directory) { logger.Log(prefix + filename + ":"); size = LogStoreFiles(logger, prefix + " ", file, mappedCounter); filename = "- Total"; } else { size = file.length(); mappedCounter.AddFile(file); } string fileModificationDate = GetFileModificationDate(file); string bytes = Format.bytes(size); string fileInformation = string.Format("{0}{1}: {2} - {3}", prefix, filename, fileModificationDate, bytes); logger.Log(fileInformation); total += size; } return(total); }