2014-05-22 2 views
-1

사용자가 한 파일을 변경할 때마다 폴더에 파일이 있습니다. 매번 다른 이름으로 다른 폴더에 백업하려고합니다. 다른 폴더에 파일 복사

내가 무엇을 가지고 지금까지 backup1.txt, backup2.txt처럼 그렇게

try 
{ 
    System.IO.File.Copy(ppFileName,MoveFilesForBackUp); 
} 
catch (Exception ex) 
{ 
    Console.WriteLine(ex.Message); 
} 

답변

0
당신이 필요합니다

에있을 뒷면까지 파일의 이름을 변경하는 방법 단지 확실하지 일종의 연속 번호를 사용하려면 대상 파일 이름 MoveFilesForBackUp을 수정하십시오.

그래서 우선 순차 백업 번호를 생성 할 수있는 함수를 작성해야합니다.

그런 다음 백업을 수행 할 때마다 다음 순차 파일 이름을 알아야합니다. 그런 다음 파일을 새 이름으로 복사하려고 시도하고 파일이 이미 존재 함을 지정하여 IOException으로 실패하면이 작업이 완료 될 때까지 다음 순차 이름 등으로 이동합니다.

순수하게 다음 순차명을 찾는 것이 Copy을 보장해야한다고 생각하지만, 검색과 실제 Copy 호출 사이에 사용자 또는 다른 프로그램이 해당 이름의 파일을 만들 수 있습니다 (a 경합 조건), 견고하기 위해서는 오류를 처리하고 다른 이름을 시도 할 수 있어야합니다.

0

이 하나의 시도 :

string path = @"F:\\EE"; 

var nextFileName = "backup" 
        + (Convert.ToInt32(Directory.GetFiles(path, "*.txt") 
        .Select(p => Path.GetFileNameWithoutExtension(p) 
        .Replace("backup", "")).Last()) 
        + 1) 
        .ToString() 
        + ".txt"; 
0

감사 난 그냥 그 복사 할 때 그 복사 한 날짜와 시간으로 이름이 바뀐 것을 코드 줄을 추가했습니다.

System.IO.File.Copy(ppFileName, Properties.Settings.Default.MoveFilesForBackUp + DateTime.Now.ToString("yyyy-MM-dd HHmmtt")+".pptx"); 
관련 문제