Ejemplo n.º 1
0
        public static void MoveFile(string source, string target, MoveFileMode mode)
        {
            if (File.Exists(target))
            {
                switch (mode)
                {
                case MoveFileMode.Overwrite:
                    File.Delete(target);
                    File.Move(source, target);
                    break;

                case MoveFileMode.OverwriteIfNewer:
                    if (File.GetCreationTimeUtc(source) >= File.GetCreationTimeUtc(target))
                    {
                        File.Delete(target);
                        File.Move(source, target);
                    }
                    else
                    {
                        File.Delete(source);
                    }
                    break;

                default:
                    break;
                }
            }
            else
            {
                File.Move(source, target);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Moves a file from source to destination
        /// </summary>
        /// <param name="source">The source file.</param>
        /// <param name="destination">The destination to move the file.</param>
        /// <param name="mode">Controls the action taken when the source files exists at destination.</param>
        public static void MoveFile(string source, string destination, MoveFileMode mode)
        {
            if (!File.Exists(destination))
            {
                File.Move(source, destination);
            }
            else
            {
                switch (mode)
                {
                case MoveFileMode.Overwrite:
                    File.Delete(destination);
                    File.Move(source, destination);
                    break;

                case MoveFileMode.OverwriteIfNewer:
                    if (File.GetCreationTimeUtc(source) >= File.GetCreationTimeUtc(destination))
                    {
                        File.Delete(destination);
                        File.Move(source, destination);
                    }
                    else
                    {
                        File.Delete(source);
                    }
                    break;

                default:
                    throw new ArgumentException("Unknown enum value");
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Moves a directory from one location to another.
        /// </summary>
        /// <param name="source">The source directory.</param>
        /// <param name="destination">The destination directory</param>
        /// <param name="mode">Controls the action taken when the source files exists at destination.</param>
        public static void MoveDirectory(string source, string destination, MoveFileMode mode)
        {
            //Now Create all of the directories
            foreach (string dirPath in Directory.GetDirectories(source, "*", SearchOption.AllDirectories))
            {
                Directory.CreateDirectory(Path.Combine(destination, dirPath.Substring(source.Length)));
            }

            //Copy all the files
            foreach (string newPath in Directory.GetFiles(source, "*.*", SearchOption.AllDirectories))
            {
                MoveFile(newPath, Path.Combine(destination, newPath.Substring(source.Length)), mode);
            }
        }
Ejemplo n.º 4
0
        // ...Because .NET is piece of .SHIT
        // Watch for stack overflow, ye be warned
        // Note: This method can be rewritten to 'merge' two directories together (like 'move' in explorer does)
        public static void RecursiveMoveDirectory(string source, string target, MoveFileMode mode)
        {
            Directory.CreateDirectory(target);

            string[] subdirs = Directory.GetDirectories(source);

            for (int i = 0; i < subdirs.Length; i++)
            {
                RecursiveMoveDirectory(subdirs[i], Path.Combine(target, Path.GetFileName(subdirs[i])), mode);
            }

            string[] files = Directory.GetFiles(source);

            for (int i = 0; i < files.Length; i++)
            {
                string targetFile = Path.Combine(target, Path.GetFileName(files[i]));
                MoveFile(files[i], targetFile, mode);
            }

            Directory.Delete(source, false);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Moves a file from source to destination
 /// </summary>
 /// <param name="source">The source file.</param>
 /// <param name="destination">The destination to move the file.</param>
 /// <param name="mode">Controls the action taken when the source files exists at destination.</param>
 public static void MoveFile(string source, string destination, MoveFileMode mode)
 {
     if (!File.Exists(destination))
     {
         File.Move(source, destination);
     }
     else
     {
         switch (mode)
         {
             case MoveFileMode.Overwrite:
                 File.Delete(destination);
                 File.Move(source, destination);
                 break;
             case MoveFileMode.OverwriteIfNewer:
                 if (File.GetCreationTimeUtc(source) >= File.GetCreationTimeUtc(destination))
                 {
                     File.Delete(destination);
                     File.Move(source, destination);
                 }
                 else
                 {
                     File.Delete(source);
                 }
                 break;
             default:
                 throw new ArgumentException("Unknown enum value");
         }
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Moves a directory from one location to another.
        /// </summary>
        /// <param name="source">The source directory.</param>
        /// <param name="destination">The destination directory</param>
        /// <param name="mode">Controls the action taken when the source files exists at destination.</param>
        public static void MoveDirectory(string source, string destination, MoveFileMode mode)
        {
            //Now Create all of the directories
            foreach (string dirPath in Directory.GetDirectories(source, "*", SearchOption.AllDirectories))
                Directory.CreateDirectory(Path.Combine(destination, dirPath.Substring(source.Length)));

            //Copy all the files
            foreach (string newPath in Directory.GetFiles(source, "*.*", SearchOption.AllDirectories))
                MoveFile(newPath, Path.Combine(destination, newPath.Substring(source.Length)), mode);

        }