public DirectoryListing(String path, bool includeSubDirectories)
        {
            this.Path = path;

            if (this.Path != String.Empty)
            {
                this.Title = System.IO.Path.GetFileNameWithoutExtension(this.Path);

                foreach (String filePath in System.IO.Directory.EnumerateFiles(this.Path))
                {
                    FileListing listing = new FileListing(filePath);
                    _Listings.Add(listing);
                    _Listings = _Listings.OrderBy(o => o.Title).ToList();
                }

                if (includeSubDirectories)
                {
                    foreach (String directoryPath in System.IO.Directory.EnumerateDirectories(this.Path))
                    {
                        DirectoryListing listing = new DirectoryListing(directoryPath, false);
                        _Listings.Add(listing);
                    }
                }
            }
        }
Exemplo n.º 2
0
        // TODO: Improve refactor _Listings and GetListings()
        public IListing[] GetListings()
        {
            List <IListing> sortedListings = new List <IListing>();

            foreach (var listing in this.listings)
            {
                sortedListings.Add(listing);
                if (listing is DirectoryListing)
                {
                    DirectoryListing directory = listing as DirectoryListing;
                    foreach (IListing subListing in directory.GetListings())
                    {
                        if (subListing is FileListing)
                        {
                            sortedListings.Add(subListing);
                        }
                    }
                }
            }

            return(sortedListings.ToArray());
        }
 protected override void RenderContents(HtmlTextWriter output)
 {
     _directoryListing = new DirectoryListing(_serverPath);
     foreach (IListing listing in _directoryListing.GetListings())
     {
         if (System.IO.Path.GetFileName(listing.Title).ToUpper() != "THUMBS")
         {
             if (listing is DirectoryListing)
             {
                 DirectoryListing dl = listing as DirectoryListing;
                 if (dl.FileCount > 0 )
                 {
                     if (_directoryTitle != String.Empty && this.WriteBreak == BoolEnum.Yes.ToString())
                         output.WriteBreak();
                     _directoryTitle = listing.Title;
                     if (!String.IsNullOrEmpty(this.HeadingClass))
                     {
                         output.AddAttribute(HtmlTextWriterAttribute.Class, this.HeadingClass);
                     }
                     GenerateFormattedHeading(output, listing);
                     if (this.WriteBreak == BoolEnum.Yes.ToString())
                     {
                         output.WriteBreak();
                     }
                     output.WriteLine();
                 }
             }
             else
             {
                 if (_directoryTitle != String.Empty)
                     _relativePath = VirtualPathUtility.AppendTrailingSlash(this.Path) + VirtualPathUtility.AppendTrailingSlash(_directoryTitle) + System.IO.Path.GetFileName(listing.Path);
                 else
                     _relativePath = VirtualPathUtility.AppendTrailingSlash(this.Path) + System.IO.Path.GetFileName(listing.Path);
                 if (!String.IsNullOrEmpty(this.ListingClass))
                 {
                     output.AddAttribute(HtmlTextWriterAttribute.Class, this.ListingClass);
                 }
                 GenerateFormattedListing(output, listing);
                 if (this.WriteBreak.ToString() == BoolEnum.Yes.ToString())
                 {
                     output.WriteBreak();
                 }
                 output.WriteLine();
             }
         }
     }
 }