Added ShowSizeInfo option for directory indexer

This commit is contained in:
Jaex 2016-02-02 20:10:50 +02:00
parent be553e5ed5
commit add42b69a3
4 changed files with 59 additions and 21 deletions

View file

@ -117,19 +117,26 @@ protected FolderInfo GetFolderInfo(string folderPath, int level = 0)
protected virtual string GetFolderNameRow(FolderInfo dir, int level = 0)
{
string text = string.Format("{0}{1}", config.IndentationText.Repeat(level), dir.FolderName);
string folderNameRow = string.Format("{0}{1}", config.IndentationText.Repeat(level), dir.FolderName);
if (dir.Size > 0)
if (config.ShowSizeInfo && dir.Size > 0)
{
text += string.Format(" [{0}]", dir.Size.ToSizeString(config.BinaryUnits));
folderNameRow += string.Format(" [{0}]", dir.Size.ToSizeString(config.BinaryUnits));
}
return text;
return folderNameRow;
}
protected virtual string GetFileNameRow(FileInfo fi, int level = 0)
{
return string.Format("{0}{1} [{2}]", config.IndentationText.Repeat(level), fi.Name, fi.Length.ToSizeString(config.BinaryUnits));
string fileNameRow = config.IndentationText.Repeat(level) + fi.Name;
if (config.ShowSizeInfo)
{
fileNameRow += string.Format(" [{0}]", fi.Length.ToSizeString(config.BinaryUnits));
}
return fileNameRow;
}
protected virtual string GetFooter()

View file

@ -85,41 +85,53 @@ protected override void IndexFolder(FolderInfo dir, int level)
protected override string GetFolderNameRow(FolderInfo dir, int level)
{
int heading = (level + 1).Between(1, 6);
string folderInfoText = string.Empty;
string folderNameRow = "";
if (!dir.IsEmpty)
{
folderInfoText = dir.Size.ToSizeString(config.BinaryUnits) + " (";
if (config.ShowSizeInfo)
{
folderNameRow += dir.Size.ToSizeString(config.BinaryUnits) + " ";
}
folderNameRow += "(";
if (dir.TotalFileCount > 0)
{
folderInfoText += dir.TotalFileCount + " file" + (dir.TotalFileCount > 1 ? "s" : "");
folderNameRow += dir.TotalFileCount + " file" + (dir.TotalFileCount > 1 ? "s" : "");
}
if (dir.TotalFolderCount > 0)
{
if (dir.TotalFileCount > 0)
{
folderInfoText += ", ";
folderNameRow += ", ";
}
folderInfoText += dir.TotalFolderCount + " folder" + (dir.TotalFolderCount > 1 ? "s" : "");
folderNameRow += dir.TotalFolderCount + " folder" + (dir.TotalFolderCount > 1 ? "s" : "");
}
folderInfoText += ")";
folderInfoText = " " + HtmlHelper.Tag("span", folderInfoText, "", "class=\"FolderInfo\"");
folderNameRow += ")";
folderNameRow = " " + HtmlHelper.Tag("span", folderNameRow, "", "class=\"FolderInfo\"");
}
return HtmlHelper.StartTag("h" + heading) + URLHelpers.HtmlEncode(dir.FolderName) + folderInfoText + HtmlHelper.EndTag("h" + heading);
int heading = (level + 1).Between(1, 6);
return HtmlHelper.StartTag("h" + heading) + URLHelpers.HtmlEncode(dir.FolderName) + folderNameRow + HtmlHelper.EndTag("h" + heading);
}
protected override string GetFileNameRow(FileInfo fi, int level)
{
string size = " " + HtmlHelper.Tag("span", fi.Length.ToSizeString(config.BinaryUnits), "", "class=\"FileSize\"");
string fileNameRow = HtmlHelper.StartTag("li") + URLHelpers.HtmlEncode(fi.Name);
return HtmlHelper.StartTag("li") + URLHelpers.HtmlEncode(fi.Name) + size + HtmlHelper.EndTag("li");
if (config.ShowSizeInfo)
{
fileNameRow += " " + HtmlHelper.Tag("span", fi.Length.ToSizeString(config.BinaryUnits), "", "class=\"FileSize\"");
}
fileNameRow += HtmlHelper.EndTag("li");
return fileNameRow;
}
protected override string GetFooter()

View file

@ -44,6 +44,9 @@ public class IndexerSettings
[Category("Indexer"), DefaultValue(0), Description("Maximum folder depth level for indexing. 0 means unlimited.")]
public int MaxDepthLevel { get; set; }
[Category("Indexer"), DefaultValue(true), Description("Write folder and file size.")]
public bool ShowSizeInfo { get; set; }
[Category("Indexer"), DefaultValue(true), Description("Add footer information to show application and generated time.")]
public bool AddFooter { get; set; }

View file

@ -70,12 +70,20 @@ protected override void IndexFolder(FolderInfo dir, int level = 0)
if (config.UseAttribute)
{
xmlWriter.WriteAttributeString("Name", dir.FolderName);
if (!dir.IsEmpty) xmlWriter.WriteAttributeString("Size", dir.Size.ToSizeString(config.BinaryUnits));
if (config.ShowSizeInfo && !dir.IsEmpty)
{
xmlWriter.WriteAttributeString("Size", dir.Size.ToSizeString(config.BinaryUnits));
}
}
else
{
xmlWriter.WriteElementString("Name", dir.FolderName);
if (!dir.IsEmpty) xmlWriter.WriteElementString("Size", dir.Size.ToSizeString(config.BinaryUnits));
if (config.ShowSizeInfo && !dir.IsEmpty)
{
xmlWriter.WriteElementString("Size", dir.Size.ToSizeString(config.BinaryUnits));
}
}
if (dir.Files.Count > 0)
@ -89,12 +97,20 @@ protected override void IndexFolder(FolderInfo dir, int level = 0)
if (config.UseAttribute)
{
xmlWriter.WriteAttributeString("Name", fi.Name);
xmlWriter.WriteAttributeString("Size", fi.Length.ToSizeString(config.BinaryUnits));
if (config.ShowSizeInfo)
{
xmlWriter.WriteAttributeString("Size", fi.Length.ToSizeString(config.BinaryUnits));
}
}
else
{
xmlWriter.WriteElementString("Name", fi.Name);
xmlWriter.WriteElementString("Size", fi.Length.ToSizeString(config.BinaryUnits));
if (config.ShowSizeInfo)
{
xmlWriter.WriteElementString("Size", fi.Length.ToSizeString(config.BinaryUnits));
}
}
xmlWriter.WriteEndElement();