예제 #1
0
        void Parse(XElement element, string filterBase, string prepend)
        {
            foreach (var child in element.Elements())
            {
                if (child.Name == "Filter")
                {
                    string filter = (string.IsNullOrEmpty(filterBase) ? "" : filterBase + "\\") + (string)child.Attribute("Name");
                    Filters.Add(filter, "");

                    Parse(child, filter, prepend);
                }
                else
                {
                    string path      = Path.Combine(prepend, (string)child.Attribute("RelativePath"));
                    string extension = Path.GetExtension(path);

                    if (extension == ".h")
                    {
                        IncludeFiles.Add(path, filterBase);
                    }
                    else if (extension == ".cpp")
                    {
                        SourceFiles.Add(path, filterBase);
                    }
                    else if (extension == ".resx")
                    {
                        ResourceFiles.Add(path, filterBase);
                    }
                    else
                    {
                        OtherFiles.Add(path, filterBase);
                    }
                }
            }
        }
예제 #2
0
        public IncludeExcludeFiles Clone()
        {
            var clonedObject = new IncludeExcludeFiles();

            clonedObject.Include      = Include.ToList();
            clonedObject.Exclude      = Exclude.ToList();
            clonedObject.IncludeFiles = IncludeFiles.ToList();
            clonedObject.ExcludeFiles = ExcludeFiles.ToList();
            return(clonedObject);
        }
예제 #3
0
        public bool Equals(IncludeExcludeFiles other)
        {
            if (other == null)
            {
                return(false);
            }

            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return(Include.SequenceEqualWithNullCheck(Include) &&
                   Exclude.SequenceEqualWithNullCheck(Exclude) &&
                   IncludeFiles.SequenceEqualWithNullCheck(IncludeFiles) &&
                   ExcludeFiles.SequenceEqualWithNullCheck(ExcludeFiles));
        }
예제 #4
0
        private void ReadIncludeFile(string file)
        {
            string line;

            using (var reader = new StreamReader(file))
            {
                while (!reader.EndOfStream)
                {
                    line = reader.ReadLine();

                    if (string.IsNullOrEmpty(line))
                    {
                        continue;
                    }

                    var parts = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                    if (parts.Length == 0)
                    {
                        continue;
                    }

                    if (!File.Exists(parts[0]))
                    {
                        Console.WriteLine("File not found \"" + parts[0] + "\"");
                        continue;
                    }

                    if (parts.Length > 1)
                    {
                        IncludeFiles.Add(new IncludeFile(parts[0], parts[1]));
                    }
                    else
                    {
                        IncludeFiles.Add(new IncludeFile(parts[0]));
                    }
                }
            }
        }
예제 #5
0
        public IEnumerable <string> GetFiles(string folderPath, bool includeSubfolders, IncludeFiles includeFiles, string extension)
        {
            var pattern      = includeFiles == IncludeFiles.SingleExtension ? "*." + extension : "*";
            var searchOption = includeSubfolders ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;
            var fileNames    = _helpers.EnumerateFiles(folderPath, pattern, searchOption);

            if (includeFiles == IncludeFiles.Uploadable || includeFiles == IncludeFiles.Image)
            {
                fileNames = fileNames.Where(x => _fileUploader.PermittedFiles.IsPermitted(x));
                if (includeFiles == IncludeFiles.Image)
                {
                    var imageExtensions = _appSettings.ImageExtensions.Split(';').Select(x => "." + x.ToUpperInvariant()).ToList();
                    fileNames = fileNames.Where(x => imageExtensions.Contains(Path.GetExtension(x).ToUpperInvariant()));
                }
            }
            return(fileNames);
        }