示例#1
0
        public DirectoryEntryCollection GetContent()
        {
            List <DirectoryEntry> entries = new List <DirectoryEntry>();

            if (!Directory.Exists(DirectoryPath))
            {
                return(new DirectoryEntryCollection(""));
            }

            var dirInfo = new DirectoryInfo(DirectoryPath);

            foreach (FileSystemInfo entry in dirInfo.GetFileSystemInfos("*", SearchOption.AllDirectories))
            {
                int    time        = (int)(entry.LastWriteTimeUtc - (new DateTime(2010, 1, 1))).TotalDays;
                bool   isDirectory = entry is DirectoryInfo;
                string content;
                if (isDirectory)
                {
                    content = "";
                }
                else
                {
                    content = File.ReadAllText(entry.FullName);
                }

                string fileName = entry.FullName.Substring((dirInfo.FullName + "/").Length);

                if (ExcludedItems == null || !ExcludedItems.IsMatch(fileName))
                {
                    entries.Add(new DirectoryEntry(fileName, isDirectory, time, content));
                }
            }

            DirectoryEntryCollection entryCollection = new DirectoryEntryCollection(entries.ToArray());

            return(entryCollection);
        }