如何使用Asp.net替换文件名(特定的特定文件夹)?

时间:2011-11-17 08:05:18

标签: asp.net c#-4.0

我可以替换特定文件夹中的文件名,我这样写了

FileInfo fsource = new FileInfo(Server.MapPath("~/PurchaseOrder/" + lblhideid.Text));
                        if (fsource.Exists)
                        {
                            string[] file = lblhideid.Text.Split('.');
                            string fName="Z-"+System.DateTime.Now.ToString("MM-dd-yyyy")+"-"+saveConsultantID+"."+file[1];
                            fsource.Name.Replace(lblhideid.Text, fName);

                        }

lblhideid.Text = image.jpeg,所以我可以像fName一样替换我自己的名字,如何替换名字请给我任何建议。

谢谢你 Hemanth

2 个答案:

答案 0 :(得分:1)

我怀疑你想要最后一行:

fsource.MoveTo(Server.MapPath("~/PuchaseOrder/" + fName));

您当前的代码只是将文件名作为字符串获取并操纵该字符串。您想要操纵文件本身。

编辑:

您确定~/PurchaseOrder/存在吗?

尝试:

string originalPath = Server.MapPath("~/PurchaseOrder/" + lblhideid.Text);

FileInfo fsource = new FileInfo(originalPath);
if (fsource.Exists)
{
     string newName = string.Format("Z-{0:MM-dd-yyyy}-{1}.{2}",
                                    System.DateTime.Now,
                                    saveConsultantID,
                                    fsource.Extension);

     string newPath = Path.Combine(fsource.DirectoryName, newName);
     fsource.MoveTo(newPath);                   
}

答案 1 :(得分:0)

试试这个,如果他们输入像file.tar.gz这样的文件名怎么办?

string extension = Path.GetExtension("~/PurchaseOrder/" + lblhideid.Text);
string newName = "MYFILE." + extension

File.Move(
    "~/PurchaseOrder/" + lblhideid.Text,
    "~/PurchaseOrder/" + newName );