2014-09-10 4 views
-6

내 로컬 하드 드라이브에서 외장 하드 드라이브로 파일 복사가 필요합니다. 내 생각에, 현재 존재하지 않는 파일 만 복사하려고합니다. 나는 그처럼 쉽게 할 수있는 훨씬 쉬운 방법이있을 것이라고 확신하지만 이것은 내 마음이 먼저 간 곳입니다. 내 L에있는 모든 파일의 목록을 가져옵니다 드라이브 및 텍스트 파일
2) 쓰기 : 내 C에있는 모든 파일의 목록 가져 오기)
1 :이 작업을 수행하는 방법에 대한존재하지 않는 파일 이동

내 생각 드라이브 (백업)와 3) C를 비교
텍스트 파일에 쓰기 : L에 드라이브 텍스트 파일 : 드라이브 텍스트 파일)
4 존재 배열
5에 존재하지 않는 파일의 결과를 작성하지 않는 파일을 찾을 수) 새로 생성 된 배열을 반복하고 파일을 L : 드라이브에 복사하십시오.

더 효과적이고 시간 효율적인 방법이 있습니까? 이 작업을 수행하려면 어떻게해야합니까?

+1

파일 목록을 파일에 쓰지 않고 메모리에 저장하는 것 외에는 나에게 좋은 소리입니다. 디렉토리를 탐색하는 것을 잊지 마십시오. –

+1

[Robocopy?] (http://technet.microsoft.com/en-us/magazine/ee851678.aspx) – crashmstr

+1

http://msdn.microsoft.com/en-us/library/system.io.file.move (v = vs.110) .aspx –

답변

-1

확실히 파일 이름을 나열하는 텍스트 파일을 만들고 비교하지 않으려합니다. 그것은 비효율적이고 clunky 될 것입니다. 이렇게하는 방법은 모든 파일을 찾는 소스 디렉토리를 살펴 보는 것입니다. 이동하면 각 파일에 대해 일치하는 대상 경로가 만들어집니다. 파일을 복사하기 직전에 파일을 복사할지 여부를 결정해야합니다. 대상 경로에 파일이 있으면 복사를 건너 뜁니다.

파일이 존재하고 마지막으로 수정 한 날짜/시간 및 파일 크기가 일치하는 경우에만 건너 뛰기가 포함될 수 있습니다. 그리고 이것에 대해서 당신이 변종을 상상할 수 있다고 확신합니다.

한 가지 일은 모든 파일의 목록을 먼저 작성한 다음 복사를 시작하는 것입니다. 소스 디렉토리를 반복하면서 파일을 복사하는 것이 더 효율적일 수 있습니다. 예를 들어 Directory.EnumerateFiles을 사용하면 효율적으로이 작업을 수행 할 수 있습니다.

물론 이렇게하기 위해 프로그램을 작성할 필요는 없습니다. 이미 수천 가지가 존재하며 그 중 일부는 상당히 효과적입니다.

관련 문제