public override void GetFileProperties()

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}");
                    }
                }
            }
        }