Удалить каталог после копирования его XCOPY - PullRequest
0 голосов
/ 03 января 2019

Я работаю с C #, используя XCOPY. У меня есть метод, который копирует полный каталог в другой:

 public static void ProcessXcopy(string SolutionDirectory, string TargetDirectory)
        {
            // Use ProcessStartInfo class
            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.CreateNoWindow = true;
            startInfo.UseShellExecute = false;

            //Give the name as Xcopy
            startInfo.FileName = "xcopy";

            //make the window Hidden
            startInfo.WindowStyle = ProcessWindowStyle.Hidden;

            //Send the Source and destination as Arguments to the process
            startInfo.Arguments = "\"" + SolutionDirectory + "\"" + " " + "\"" + TargetDirectory + "\"" + @" /e /y /I /B";

            try
            {
                // Start the process with the info we specified.
                // Call WaitForExit and then the using statement will close.
                using (Process exeProcess = Process.Start(startInfo))
                {
                    exeProcess.WaitForExit();
                }
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }

Что я хочу знать, если есть способ удалить исходный каталог после его успешного копирования в другой каталог.

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Если вы хотите использовать методы .Net, вы можете использовать Directory.Delete в операторе finally. Второй параметр указывает на удаление подпапки / файлов. Подробнее здесь

Directory.Delete(path,true);
0 голосов
/ 03 января 2019

вы можете использовать robocopy вместо xcopy

robocopy from_folder to_folder files_to_copy /MOVE

xcopy нуждается в сценарии .bat, чтобы иметь такую ​​же функциональность с 1 строкой robocopy

Пример:

xcopy /D /V %1 %2

if errorlevel 0 (
    del /Q %1
    exit /B
)
...