コード例 #1
0
ファイル: ZoneCSVFile.cs プロジェクト: PetX1996/CSVFiles
        public List <string> GetFileList(ZoneCSVFileType type)
        {
            List <string> files       = new List <string>();
            List <string> ignoreFiles = new List <string>();

            foreach (ZoneCSVFile inc in _includes)
            {
                files.AddRange(inc.GetFileList(type));
            }

            foreach (List <string> lineColumns in GetItems())
            {
                if (lineColumns.Count > 0 && lineColumns[0] == type.Type)
                {
                    string file = ZoneCSVFileType.GetType(type).FileGetFunc(lineColumns);
                    if (!String.IsNullOrEmpty(file))
                    {
                        files.Add(file);
                    }
                }
            }

            foreach (ZoneCSVFile ign in _ignores)
            {
                ignoreFiles.AddRange(ign.GetFileList(type));
            }

            return(files.Except(ignoreFiles).ToList());
        }
コード例 #2
0
ファイル: Packer.cs プロジェクト: PetX1996/IWDPacker
        List <string> GetIncludeExcludeFiles(List <string> filePaths, ZoneCSVFileType type)
        {
            List <string> files = new List <string>();

            foreach (string filePath in filePaths)
            {
                if (!File.Exists(filePath))
                {
                    throw new ApplicationException("Could not find '" + filePath + "', check args.");
                }

                string searchDir = Path.GetDirectoryName(filePath);
                string fileName  = Path.GetFileNameWithoutExtension(filePath);

                ZoneCSVFile csvFile = new ZoneCSVFile(searchDir, fileName);
                csvFile.Read();
                files.AddRange(csvFile.GetFileList(type));
            }
            return(files);
        }
コード例 #3
0
ファイル: ZoneCSVFile.cs プロジェクト: PetX1996/CSVFiles
        public static ZoneCSVFileType GetType(ZoneCSVFileType type)
        {
            if (_types == null)
            {
                _types = new List <ZoneCSVFileType>();

                foreach (FieldInfo f in typeof(ZoneCSVFileType).GetFields(BindingFlags.Public | BindingFlags.Static))
                {
                    if (f.FieldType == typeof(ZoneCSVFileType))
                    {
                        _types.Add((ZoneCSVFileType)f.GetValue(null));
                    }
                }
            }

            ZoneCSVFileType foundType = _types.Find(a => a == type);

            if (foundType != null)
            {
                return(foundType);
            }

            throw new ApplicationException("Unsupported zone file type '" + type + "'");
        }