示例#1
0
            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);
            }