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) 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) 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() 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) protected override string GetFolderNameRow(FolderInfo dir, int level)
{ {
int heading = (level + 1).Between(1, 6); string folderNameRow = "";
string folderInfoText = string.Empty;
if (!dir.IsEmpty) if (!dir.IsEmpty)
{ {
folderInfoText = dir.Size.ToSizeString(config.BinaryUnits) + " ("; if (config.ShowSizeInfo)
{
folderNameRow += dir.Size.ToSizeString(config.BinaryUnits) + " ";
}
folderNameRow += "(";
if (dir.TotalFileCount > 0) 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.TotalFolderCount > 0)
{ {
if (dir.TotalFileCount > 0) if (dir.TotalFileCount > 0)
{ {
folderInfoText += ", "; folderNameRow += ", ";
} }
folderInfoText += dir.TotalFolderCount + " folder" + (dir.TotalFolderCount > 1 ? "s" : ""); folderNameRow += dir.TotalFolderCount + " folder" + (dir.TotalFolderCount > 1 ? "s" : "");
} }
folderInfoText += ")"; folderNameRow += ")";
folderInfoText = " " + HtmlHelper.Tag("span", folderInfoText, "", "class=\"FolderInfo\""); 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) 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() 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.")] [Category("Indexer"), DefaultValue(0), Description("Maximum folder depth level for indexing. 0 means unlimited.")]
public int MaxDepthLevel { get; set; } 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.")] [Category("Indexer"), DefaultValue(true), Description("Add footer information to show application and generated time.")]
public bool AddFooter { get; set; } public bool AddFooter { get; set; }

View file

@ -70,12 +70,20 @@ protected override void IndexFolder(FolderInfo dir, int level = 0)
if (config.UseAttribute) if (config.UseAttribute)
{ {
xmlWriter.WriteAttributeString("Name", dir.FolderName); 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 else
{ {
xmlWriter.WriteElementString("Name", dir.FolderName); 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) if (dir.Files.Count > 0)
@ -89,12 +97,20 @@ protected override void IndexFolder(FolderInfo dir, int level = 0)
if (config.UseAttribute) if (config.UseAttribute)
{ {
xmlWriter.WriteAttributeString("Name", fi.Name); 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 else
{ {
xmlWriter.WriteElementString("Name", fi.Name); 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(); xmlWriter.WriteEndElement();