Пример #1
0
        public static void Create(String path, NameConflictOption aNameConflictOption)
        {
            if (File.Exists(path))
            {
                switch (aNameConflictOption)
                {
                case NameConflictOption.Cancel:
                case NameConflictOption.Skip:
                    return;

                case NameConflictOption.Overwrite:
                    FileExt.Delete(path);
                    break;

                case NameConflictOption.RenameExisting:
                    FileExt.Move(path, FileExt.MakeUnique(path));
                    break;

                case NameConflictOption.RenameNew:
                    throw new InvalidDataException("Can't rename a file we are trying to create");

                default:
                    break;
                }
            }
            DirectoryExt.Create(Path.GetDirectoryName(path));
            FileStream stream = File.Create(path);

            stream.Close();
        }
Пример #2
0
        public static void Copy(String source, String destination, NameConflictOption aNameConflictOption, Action <ProcessProgress> handler, ref int cancel)
        {
            if (!File.Exists(source))
            {
                throw new FileNotFoundException("The source file could not be found.");
            }
            if (File.Exists(destination))
            {
                switch (aNameConflictOption)
                {
                case NameConflictOption.Cancel:
                case NameConflictOption.Skip:
                    return;

                case NameConflictOption.Overwrite:
                    Delete(destination);
                    break;

                case NameConflictOption.RenameExisting:
                    FileExt.Move(destination, FileExt.MakeUnique(destination));
                    break;

                case NameConflictOption.RenameNew:
                    destination = FileExt.MakeUnique(destination);
                    break;

                default:
                    break;
                }
            }

            if (!Directory.Exists(Path.GetDirectoryName(destination)))
            {
                DirectoryExt.Create(Path.GetDirectoryName(destination));
            }

            FileInfo fileInfo = new FileInfo(source);
            bool     noBuffer = fileInfo.Length < Constants.USE_BUFFER_FILE_SIZE_BYTES;

            XCopy.Copy(source, destination, aNameConflictOption == NameConflictOption.Overwrite, noBuffer, handler, ref cancel);
        }
Пример #3
0
 public static void Write(String filename, String text, bool append)
 {
     //Clear readonly flag
     if (File.Exists(filename))
     {
         File.SetAttributes(filename, FileAttributes.Normal);
     }
     if (append)
     {
         File.AppendAllText(filename, text);
     }
     else
     {
         if (File.Exists(filename))
         {
             Delete(filename);
         }
         if (!Directory.Exists(Path.GetDirectoryName(filename)))
         {
             DirectoryExt.Create(Path.GetDirectoryName(filename));
         }
         File.WriteAllText(filename, text);
     }
 }