2016-12-14 1 views
-3

"_Copy"를 추가하여 파일 이름을 변경하지만 파일 형식을 유지할 파일 복사기를 만들지 묻는 메시지가 나타납니다.파일 복사 및 이름 변경

c:\...mike.jpg 

에 : 예를 들어

private void btnChseFile_Click(object sender, EventArgs e) 
{ 
    prgrssBar.Minimum = 0; 
    OpenFileDialog ofd = new OpenFileDialog(); 
    ofd.Title = "Which file do you want to copy ?";    

    DialogResult fc = ofd.ShowDialog();      
    tbSource.Text = ofd.FileName; 
    tbDestination.Text = tbSource.Text + "_Copy";   
} 
+3

문제/오류가 무엇입니까 다음 복사를 수행하기 위해 다음과 같은

OpenFileDialog od = new OpenFileDialog(); if(od.ShowDialog() == System.Windows.Forms.DialogResult.OK) { System.IO.FileInfo fi = new System.IO.FileInfo(od.FileName); string oldFile = fi.FullName; string newFile = oldFile.Replace(System.IO.Path.GetFileNameWithoutExtension(oldFile), string.Format("{0}_Copy", System.IO.Path.GetFileNameWithoutExtension(oldFile))); MessageBox.Show(newFile); } 

그런 다음 당신이 호출 할 수 있습니다 : u는 클래스 System.IO.FileInfo을 사용할 수 있으며 System.IO.Path은 당신이 시도하고 나타납니다 무엇을 할 수 있나요? – RandomStranger

+0

@Bas comeon 그것은 분명합니다. '그럴 일 없어' – Ivaro18

답변

0

System.IO.File.Copy(oldFile, newFile); 
0

당신은 전에 파일 이름의 끝 위에 _Copy를 추가하고되지 않습니다 여기

c:\...mike_Copy.jpg 

내 코드입니다 신장.

string destFileName = $"{Path.GetFileNameWithoutExtension(ofd.FileName)}_Copy{Path.GetExtension(ofd.FileName)}"; 

또는 C# 6없이 : 당신은 확장하기 전에 추가해야

string fullPath = Path.Combine(Path.GetDirectoryName(ofd.FileName, destFileName)); 

이 그 다음을 수행 할 수 :

string destFileName = String.Format("{0}_Copy{1}", 
            Path.GetFileNameWithoutExtension(ofd.FileName), 
            Path.GetExtension(ofd.FileName)); 

그런 다음 파일 사용에 대한 전체 경로를 얻을 수 실제 사본 사용 :

File.Copy(ofd.FileName, fullPath);