예제 #1
0
 public static void DeleteFile(string filePath, int tries, int tryTimeout,
                               DeleteFileEventHandler deleteFileHandler = null)
 {
     if (File.Exists(filePath))
     {
         GUC.Utilities.Threading.Runnable deletor = new GUC.Utilities.Threading.Runnable(false,
                                                                                         TimeSpan.Zero, true);
         deletor.OnRun += delegate(GUC.Utilities.Threading.Runnable sender)
         {
             LoopDelete(filePath, tries, tryTimeout, deleteFileHandler);
         };
         deletor.Start();
     }
 }
예제 #2
0
        protected static void LoopDelete(string filePath, int tries, int tryTimeout,
                                         DeleteFileEventHandler deleteFileHandler = null)
        {
            bool success = false;

            for (int i = 0; i < tries; i++)
            {
                if (TryDeleteFile(filePath))
                {
                    success = true;
                    break;
                }

                System.Threading.Thread.Sleep(tryTimeout);
            }

            if (deleteFileHandler != null)
            {
                deleteFileHandler(success);
            }
        }
예제 #3
0
 public static void DeleteFile(string filePath,
                               DeleteFileEventHandler deleteFileHandler = null)
 {
     DeleteFile(filePath, DeleteTries, DeleteTimeout, deleteFileHandler);
 }