示例#1
0
 private static void OnFileCopying(FileRenamingEventArgs e)
 {
     if (FileCopying != null)
     {
         FileCopying(null, e);
     }
 }
示例#2
0
 /// <summary>
 /// Renames or moves a file, raising the appropriate events. This method may show message boxes.
 /// </summary>
 public static bool RenameFile(string oldName, string newName, bool isDirectory)
 {
     if (FileUtility.IsEqualFileName(oldName, newName))
     {
         return(false);
     }
     FileChangeWatcher.DisableAllChangeWatchers();
     try
     {
         FileRenamingEventArgs eargs = new FileRenamingEventArgs(oldName, newName, isDirectory);
         OnFileRenaming(eargs);
         if (eargs.Cancel)
         {
             return(false);
         }
         if (!eargs.OperationAlreadyDone)
         {
             try
             {
                 if (isDirectory && Directory.Exists(oldName))
                 {
                     if (Directory.Exists(newName))
                     {
                         MessageService.ShowMessage(StringParser.Parse("${res:Gui.ProjectBrowser.FileInUseError}"));
                         return(false);
                     }
                     Directory.Move(oldName, newName);
                 }
                 else if (File.Exists(oldName))
                 {
                     if (File.Exists(newName))
                     {
                         MessageService.ShowMessage(StringParser.Parse("${res:Gui.ProjectBrowser.FileInUseError}"));
                         return(false);
                     }
                     File.Move(oldName, newName);
                 }
             }
             catch (Exception e)
             {
                 if (isDirectory)
                 {
                     MessageService.ShowHandledException(e, "Can't rename directory " + oldName);
                 }
                 else
                 {
                     MessageService.ShowHandledException(e, "Can't rename file " + oldName);
                 }
                 return(false);
             }
         }
         OnFileRenamed(new FileRenameEventArgs(oldName, newName, isDirectory));
         return(true);
     }
     finally
     {
         FileChangeWatcher.EnableAllChangeWatchers();
     }
 }
示例#3
0
        /// <summary>
        /// Copies a file, raising the appropriate events. This method may show message boxes.
        /// </summary>
        public static bool CopyFile(string oldName, string newName, bool isDirectory, bool overwrite)
        {
            if (FileUtility.IsEqualFileName(oldName, newName))
            {
                return(false);
            }
            FileRenamingEventArgs eargs = new FileRenamingEventArgs(oldName, newName, isDirectory);

            OnFileCopying(eargs);
            if (eargs.Cancel)
            {
                return(false);
            }
            if (!eargs.OperationAlreadyDone)
            {
                try
                {
                    if (isDirectory && Directory.Exists(oldName))
                    {
                        if (!overwrite && Directory.Exists(newName))
                        {
                            MessageService.ShowMessage(StringParser.Parse("${res:Gui.ProjectBrowser.FileInUseError}"));
                            return(false);
                        }
                        FileUtility.DeepCopy(oldName, newName, overwrite);
                    }
                    else if (File.Exists(oldName))
                    {
                        if (!overwrite && File.Exists(newName))
                        {
                            MessageService.ShowMessage(StringParser.Parse("${res:Gui.ProjectBrowser.FileInUseError}"));
                            return(false);
                        }
                        File.Copy(oldName, newName, overwrite);
                    }
                }
                catch (Exception e)
                {
                    if (isDirectory)
                    {
                        MessageService.ShowHandledException(e, "Can't copy directory " + oldName);
                    }
                    else
                    {
                        MessageService.ShowHandledException(e, "Can't copy file " + oldName);
                    }
                    return(false);
                }
            }
            OnFileCopied(new FileRenameEventArgs(oldName, newName, isDirectory));
            return(true);
        }