コード例 #1
0
ファイル: UpdateFetcher.cs プロジェクト: FelCore/FelCore
        void FillFileListRecursively(string path, LocaleFileStorage storage, State state, int depth)
        {
            foreach (var file in Directory.GetFiles(path, "*", SearchOption.AllDirectories))
            {
                if (Directory.Exists(file))
                {
                    if (depth < MAX_DEPTH)
                    {
                        FillFileListRecursively(file, storage, state, depth + 1);
                    }
                }
                else if (Path.GetExtension(file) == ".sql")
                {
                    FEL_LOG_TRACE("sql.updates", "Added locale file \"{0}\".", Path.GetFileName(file));

                    var entry = new LocaleFileEntry(file, state);

                    // Check for doubled filenames
                    // Because elements are only compared by their filenames, this is ok
                    if (storage.Contains(entry))
                    {
                        FEL_LOG_FATAL("sql.updates", "Duplicate filename \"{0}\" occurred. Because updates are ordered by their filenames, every name needs to be unique!", file);

                        throw new UpdateException("Updating failed, see the log for details.");
                    }

                    storage.Add(entry);
                }
            }
        }
コード例 #2
0
ファイル: UpdateFetcher.cs プロジェクト: FelCore/FelCore
        LocaleFileStorage GetFileList()
        {
            LocaleFileStorage files       = new LocaleFileStorage();
            DirectoryStorage  directories = ReceiveIncludedDirectories();

            foreach (var entry in directories)
            {
                FillFileListRecursively(entry.DirectoryPath, files, entry.State, 1);
            }

            return(files);
        }