ZeroInstall.Store.Implementations.FlagUtils.GetFiles C# (CSharp) Метод

GetFiles() приватный Метод

private GetFiles ( [ flagName, [ target ) : ICollection
flagName [
target [
Результат ICollection
        public static ICollection<string> GetFiles([NotNull] string flagName, [NotNull] string target)
        {
            #region Sanity checks
            if (string.IsNullOrEmpty(flagName)) throw new ArgumentNullException(nameof(flagName));
            if (string.IsNullOrEmpty(target)) throw new ArgumentNullException(nameof(target));
            #endregion

            string flagDir = FindRootDir(flagName, target);
            if (flagDir == null) return new string[0];

            var externalFlags = new List<string>();
            using (StreamReader flagFile = File.OpenText(Path.Combine(flagDir, flagName)))
            {
                // Each line in the file signals a flagged file
                while (!flagFile.EndOfStream)
                {
                    string line = flagFile.ReadLine();
                    if (line != null && line.StartsWith("/"))
                    {
                        // Trim away the first slash and then replace Unix-style slashes
                        string relativePath = FileUtils.UnifySlashes(line.Substring(1));
                        externalFlags.Add(Path.Combine(flagDir, relativePath));
                    }
                }
            }
            return externalFlags;
        }

Usage Example

Пример #1
0
        /// <summary>
        /// Creates manifest nodes for a set of file system elements.
        /// </summary>
        /// <param name="entries">The file system elements to create nodes for.</param>
        /// <returns>The nodes for the elements.</returns>
        private IEnumerable <ManifestNode> GetNodes(IEnumerable <FileSystemInfo> entries)
        {
            var externalXbits    = FlagUtils.GetFiles(FlagUtils.XbitFile, TargetDir);
            var externalSymlinks = FlagUtils.GetFiles(FlagUtils.SymlinkFile, TargetDir);

            // Iterate through the directory listing to build a list of manifets entries
            var nodes = new List <ManifestNode>();

            foreach (var entry in entries)
            {
                CancellationToken.ThrowIfCancellationRequested();

                var file = entry as FileInfo;
                if (file != null)
                {
                    // Don't include manifest management files in manifest
                    if (file.Name == Manifest.ManifestFile || file.Name == FlagUtils.XbitFile || file.Name == FlagUtils.SymlinkFile)
                    {
                        continue;
                    }

                    nodes.Add(GetFileNode(file, Format, externalXbits, externalSymlinks));
                    UnitsProcessed += file.Length;
                }
                else
                {
                    var directory = entry as DirectoryInfo;
                    if (directory != null)
                    {
                        nodes.Add(GetDirectoryNode(directory, Format, Path.GetFullPath(TargetDir)));
                    }
                }
            }
            return(nodes);
        }
All Usage Examples Of ZeroInstall.Store.Implementations.FlagUtils::GetFiles