Example #1
0
        private static void ReadDat(FileInfo[] fis, string subPath, uint ParentId)
        {
            foreach (FileInfo f in fis)
            {
                _datsProcessed++;
                _bgw.ReportProgress(_datsProcessed);

                uint datId = FindDAT.Execute(subPath, f.Name, f.LastWriteTime);
                if (datId > 0)
                    continue;

                _bgw.ReportProgress(0, new bgwText("Dat : " + subPath + @"\" + f.Name));

                RvDat rvDat;
                if (DatReader.DatReader.ReadDat(f.FullName, f.LastWriteTime, _bgw, out rvDat))
                {
                    rvDat.DirId = ParentId;
                    DataAccessLayer.ExecuteNonQuery("BEGIN");
                    rvDat.DbWrite();
                    DataAccessLayer.ExecuteNonQuery("COMMIT");
                }

                if (_bgw.CancellationPending)
                    return;
            }
        }
Example #2
0
        public FileInfo[] GetFiles(string SearchPattern, bool includeHidden = true)
        {
            List<FileInfo> files = new List<FileInfo>();

            string dirName = NameFix.AddLongPathPrefix(FullName);

            Win32Native.WIN32_FIND_DATA findData = new Win32Native.WIN32_FIND_DATA();
            SafeFindHandle findHandle = Win32Native.FindFirstFile(dirName + @"\" + SearchPattern, findData);

            if (!findHandle.IsInvalid)
            {
                do
                {
                    string currentFileName = findData.cFileName;

                    // if this is a directory, find its contents
                    if ((findData.dwFileAttributes & Win32Native.FILE_ATTRIBUTE_DIRECTORY) != 0) continue;
                    if (!includeHidden && (findData.dwFileAttributes & Win32Native.FILE_ATTRIBUTE_HIDDEN) != 0) continue;

                    FileInfo fi = new FileInfo
                    {
                        Name = currentFileName,
                        FullName = Path.Combine(FullName, currentFileName),
                        Length = Convert.Length(findData.nFileSizeHigh, findData.nFileSizeLow),
                        LastWriteTime = Convert.Time(findData.ftLastWriteTimeHigh, findData.ftLastWriteTimeLow),
                        fileAttributes = findData.dwFileAttributes
                    };
                    files.Add(fi);
                }
                while (Win32Native.FindNextFile(findHandle, findData));
            }

            // close the find handle
            findHandle.Dispose();

            return files.ToArray();
        }