Exemple #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();
        }
Exemple #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);
        }