2011-05-29 67 views
-1

我要移动的文件,并将其重命名,问题是,我不知道它的扩展,它原来的名字,我选择使用OPENFILE dialogeC#移动功能

任何建议,以解决

+0

代码..代码..请。 – 2011-05-29 21:34:47

回答

1
this.openFileDialog1.ShowDialog(); 
int start = this.openFileDialog1.FileName.LastIndexOf('.') + 1; 
string newLoc = @"C:\NewFileName." + 
    this.openFileDialog1.FileName.Substring(start,3); //<-- gets the file extension 
File.Move(this.openFileDialog1.FileName, newLoc); 
+0

你应该真的使用这些方法来处理Path类中的扩展。他们将*只是工作*。如果文件没有扩展名,这将失败。或者多于或少于3个字符的扩展名(如.cs或.html) – 2011-05-29 22:11:02

+0

当最终结果为程序终止时,我总是使用该副词,在这种情况下是因为'ArgumentOutOfRangeException'。但是由于还有其他不那么显着的结果,我删除了它。 – 2011-05-29 22:24:40

+0

当然你是对的。然而,这是我脑海中出现的问题的第一个解决方案。 :-) – 2011-05-29 22:26:05

2

使用File.Move

OpenFile对话框的FileName属性应该为您提供用户选择的文件的路径/名称。

+0

是的,但file.move需要一个目的地,我知道目的地和新名称的目录,但我不知道扩展 – AMH 2011-05-29 21:47:06

+0

您可以使用Path.GetFileExtension(或类似的东西,不记得确切的函数名称,使用intellisence进行检查)以得到文件扩展名。你从FileName属性获得文件名。 – Alxandr 2011-05-29 21:56:24

2

您可以使用Path.ChangeExtensionPath.GetExtension

string oldFileName = /*...*/; 
string newFileName = /*...*/; 
string extension = Path.GetExtension(oldFileName); 
string newFileNameWithExtension = Path.ChangeExtension(newFileName, extension);