필자는 필요할 때 git 프로젝트의 백업을 생성하는 프로그램을 만들고 디렉토리 안의 모든 파일과 함께 하나의 디렉토리 안에있는 모든 파일을 복사하려고 시도하고 있습니다. 그러나이 프로그램 예를 들어, 시작 디렉토리 안에있는 파일 내가이 디렉토리가, 그 복사본 만 실행하면Recursivley는 다른 디렉토리 내부의 디렉토리 내부에 파일을 복사합니다.
$ ls
gen_email.rb* lib/ LICENSE.txt log/ readme.md
: 나는이 파일 및 디렉토리를 그 디렉토리의 내부
$ ls
email/
을 lib
의
내부는 내가
0123이email/ list.yml modules/ tools/
log
의 내부가
email_log.LOG
이제 내부에있는 디렉토리 및 파일과 함께 lib
및 log
안에있는 파일과 함께이 디렉토리 내부의 파일을 복사 할 수 있어야합니다.
'06-02-2016 fl2knjas.z24'/
그리고이 내부
은 다음과 같습니다 :이 프로그램을 실행하면나는 다음과 같은 얻을
gen_email.rb* LICENSE.txt readme.md
그래서 내 프로그램은 직업하고있다, 그래하지만의 일부를 떠나고있다 디렉토리와 파일 ..
출처 :
using System;
using System.IO;
namespace BackupGen
{
class Program
{
static void Copy(string strtDir, string destDir)
{
foreach (var file in Directory.GetFiles(strtDir))
File.Copy(file, Path.Combine(destDir, Path.GetFileName(file)));
foreach (var directory in Directory.GetDirectories(strtDir))
Copy(directory, Path.Combine(destDir, Path.GetFileName(directory)));
}
static void Main(string[] args)
{
var date = DateTime.Now.ToString("MM-dd-yyyy");
var fileName = Path.GetRandomFileName();
var dir = Directory.CreateDirectory($"{date} {fileName}");
Console.WriteLine("Attempting to create a backup..");
try
{
Directory.CreateDirectory([email protected]"Z:\backups\{dir}");
Copy(@"C:\Users\git_orgin\email", [email protected]"Z:\backups\{dir}");
Console.WriteLine($"Backup created as {dir}");
Console.ReadLine();
}
catch (Exception e)
{
Console.WriteLine("Something went wrong.. {0}", e.ToString());
}
}
}
}
질문 : 내가 어떻게 strtDir
안에 모든 디렉토리를 통해 계속 실행하고 모든 파일을 복사 할 수 있습니까?
이미 System.Diagnostics.Process.Start()가 xcopy 명령을 실행하는 데있어 문제가 있습니다. 이미 재귀 적으로 파일을 복사 할 수 있습니까? –
@EricJ. : 아마 자신의 진도보고 시스템을 구현하고 싶습니까? :) –
위대한 학습 운동,하지만 바퀴가 이미 존재하는 경우, 나는 이것을 지적하고자합니다 :-) –