in AdlsDotNetSDK/MockAdlsFileSystem/MockAdlsClient.cs [1191:1239]
public override void GetFileProperties(string path, bool getAclUsage, string dumpFileName, bool getDiskUsage = true,
bool saveToLocal = true, int numThreads = -1, bool displayFiles = false, bool hideConsistentAcl = false,
long maxDepth = Int64.MaxValue, CancellationToken cancelToken = default(CancellationToken))
{
if (!(getAclUsage || getDiskUsage))
{
throw new ArgumentException("At least one option of getAclUsage and getDiskUsage need to be set as true.");
}
if (!displayFiles && hideConsistentAcl)
{
throw new ArgumentException("hideConsistentAcl cannot be true when displayFiles is false because consistent Acl cannot be determined unless we retrieve acls for the files also.");
}
if (saveToLocal)
{
Utils.CreateParentDirectory(dumpFileName);
}
using (var propertyDumpWriter = new StreamWriter((saveToLocal
? new FileStream(dumpFileName, FileMode.Create, FileAccess.ReadWrite)
: (Stream)CreateFile(dumpFileName, IfExists.Overwrite))))
{
WriteHeader(propertyDumpWriter, getDiskUsage, getAclUsage, displayFiles, hideConsistentAcl);
foreach (var directoryEntriesKey in _directoryEntries.Keys)
{
if (directoryEntriesKey.StartsWith(path))
{
var summary = _directoryEntries[directoryEntriesKey].Entry.Type == DirectoryEntryType.DIRECTORY
? GetContentSummary(_directoryEntries[directoryEntriesKey].Entry.FullName)
: new ContentSummary(0, 1, _directoryEntries[directoryEntriesKey].Entry.Length,
_directoryEntries[directoryEntriesKey].Entry.Length);
var status = GetAclStatus(_directoryEntries[directoryEntriesKey].Entry.FullName);
string output = "";
if (getDiskUsage)
{
output =
$"1{FileProperties.PropertyManager.OuputLineSeparator}1{FileProperties.PropertyManager.OuputLineSeparator}1{FileProperties.PropertyManager.OuputLineSeparator}{summary.Length}{FileProperties.PropertyManager.OuputLineSeparator}{summary.FileCount}{FileProperties.PropertyManager.OuputLineSeparator}{summary.DirectoryCount}";
}
if (getAclUsage)
{
bool showAclConsistentColumn = displayFiles || hideConsistentAcl;
output +=
$"{(string.IsNullOrEmpty(output) ? "" : $"{FileProperties.PropertyManager.OuputLineSeparator}")}{string.Join("|", status.Entries)}{(showAclConsistentColumn ? $"{FileProperties.PropertyManager.OuputLineSeparator}true" : "")}";
}
propertyDumpWriter.WriteLine($"{_directoryEntries[directoryEntriesKey].Entry.FullName}{FileProperties.PropertyManager.OuputLineSeparator}{_directoryEntries[directoryEntriesKey].Entry.Type}{FileProperties.PropertyManager.OuputLineSeparator}{output}");
}
}
}
}