コード例 #1
0
        private void DiscoverExistingFiles()
        {
            Logger.Info("Discovering Party Poker Hand Histories Started");

            long            totalHandsFound = 0;
            List <FileInfo> files           = _parser.DiscoverHandHistoryFiles();
            string          dir             = _parser.HandHistoryDir;

            int count = files.Count;

            for (int i = 0; i < files.Count; i++)
            {
                FileInfo file  = files[i];
                long     hands = _parser.CountHandsInFile(file);
                totalHandsFound += hands;
            }

            Logger.Info("Found {0} hand history files ({1} hands) in folder {2}", count, totalHandsFound, dir);

            if (files.Count > 0)
            {
                lock (_fileLock)
                {
                    for (int i = 0; i < files.Count; i++)
                    {
                        FileInfo file = files[i];
                        _filesToImport.Enqueue(file);
                    }
                }
                _fileWait.Set();
            }
        }
コード例 #2
0
        private void FileWatchTimer_Tick(object state)
        {
            this.Stop();

            string pattern = "*.txt";

            List <FileInfo> files = new List <FileInfo>();

            PartyPokerParser.DiscoverHandHistoryFiles(this.WatchDirectory, pattern, files);

            List <FileInfo> changes = new List <FileInfo>();

            foreach (FileInfo file in files)
            {
                bool parseFile = false;

                DateTime create = file.CreationTime;
                DateTime write  = file.LastWriteTime;
                long     size   = file.Length;

                if (_fileSizes.ContainsKey(file.FullName))
                {
                    parseFile = size > _fileSizes[file.FullName];
                }
                else
                {
                    parseFile = create >= this.LastCheck;
                }

                _fileSizes[file.FullName] = file.Length;
                if (parseFile)
                {
                    changes.Add(file);
                }
            }

            if (changes.Count > 0)
            {
                foreach (FileInfo file in changes)
                {
                    FileSystemEventArgs e = new FileSystemEventArgs(WatcherChangeTypes.Changed,
                                                                    file.DirectoryName, file.Name);
                    OnFileChanged(this, e);
                }
            }

            this.LastCheck = DateTime.Now;

            this.Start();
        }