Esempio n. 1
0
 public static SqlClass GetInstance()
 {
     if (instance == null)
     {
         instance = new SqlClass();
     }
     return(instance);
 }
Esempio n. 2
0
        static void Main(string[] args)
        {
            FileInfo curFile = new FileInfo(Process.GetCurrentProcess().MainModule.FileName);
            string   defFile = string.Format("{0}\\backup.def", curFile.DirectoryName);

            readDef(defFile);

            sql = SqlClass.GetInstance();

            ThreadPool.SetMaxThreads(20, 20);
            string log_directory = string.Format("{0}\\log\\{1}", curFile.DirectoryName, DateTime.Now.ToString("yyyy-M-d"));

            if (!Directory.Exists(log_directory))
            {
                Directory.CreateDirectory(log_directory);
            }

            StreamWriter log = new StreamWriter(string.Format("{0}\\{1}.txt", log_directory, DateTime.Now.ToString("yyyy-M-d HH-mm-ss")));

            try
            {
                sql.Init();
                foreach (DirectoryInfo folder in backupFolderList)
                {
                    StreamWriter sw = new StreamWriter(string.Format("{0}\\{1}_{2}.txt", log_directory, folder.Name, DateTime.Now.ToString("yyyy-M-d HH-mm-ss")));
                    DateTime     dt = DateTime.Now;
                    if (folder.Exists)
                    {
                        BackupFolderParameter p = new BackupFolderParameter();
                        p.folder         = folder;
                        p.parendFolderId = "-1";
                        p.sw             = sw;
                        p.histroyId      = sql.GetNewBackupHistroyId(sql.GetFolderPathId(p.folder.FullName, p.parendFolderId));
                        //Thread thread = new Thread(new ParameterizedThreadStart(backupFolder));
                        lock (countObj) mThreadCount++;
                        //thread.Start(p);
                        //Console.WriteLine(string.Format("Thread:{0}",p.folder.FullName));
                        ThreadPool.QueueUserWorkItem(new WaitCallback(backupFolder), p);
                        //backupFolder(folder, "-1", sw);
                    }
                    else
                    {
                        lock (logWriter)
                        {
                            sw.WriteLine(string.Format("{0} 路径错误\n", folder.FullName));
                        }
                    }
                    //sw.WriteLine("Hash 文件夹 {0}", folder.FullName);
                    //DateTime dt1 = DateTime.Now;
                    //TimeSpan ts = dt1 - dt;
                    //sw.WriteLine("总用时:{0} 小时 {1} 分钟 {2} 秒", ts.Hours, ts.Minutes, ts.Seconds);
                    //sw.Close();
                }
                //sql.save_cache();
            }
            catch (Exception e)
            {
                log.WriteLine(e.Message);
                log.WriteLine(e.StackTrace);
            }
            //sql.save_cache();

            while (true)
            {
                Thread.Sleep(1000);
                Console.WriteLine("Thread Count:" + mThreadCount.ToString());
                if (mThreadCount <= 0)
                {
                    sql.Save_cache();
                    break;
                }
            }
            Console.WriteLine("BackupFinished" + mThreadCount.ToString());
            log.Close();
        }