C# 如何上载Excel文件以及带有文件名的新GUID追加?

C# 如何上载Excel文件以及带有文件名的新GUID追加?,c#,asp.net-mvc,C#,Asp.net Mvc,我试图上传一个excel文件,我想用文件名附加Guid 我用的是C#MVC public ActionResult ValidateUploadedFile() { DataExchangeDefinitionViewModel dataExchangeDefinitionVM = new DataExchangeDefinitionViewModel(); DataExchangeDefinition dataExchangeDe

我试图上传一个excel文件,我想用文件名附加Guid

我用的是C#MVC

public ActionResult ValidateUploadedFile()
        {
            DataExchangeDefinitionViewModel dataExchangeDefinitionVM = new DataExchangeDefinitionViewModel();
            DataExchangeDefinition dataExchangeDefinitionObj = new DataExchangeDefinition();

            //  Get all files from Request object  
            HttpFileCollectionBase files = Request.Files;
            HttpPostedFileBase file = files[0];

            try
            {
                if (Request.Files.Count > 0)
                {
                    string fname;
                    // Checking for Internet Explorer  
                    if (Request.Browser.Browser.ToUpper() == "IE" || Request.Browser.Browser.ToUpper() == "INTERNETEXPLORER")
                    {
                        string[] testfiles = file.FileName.Split(new char[] { '\\' });
                        fname = testfiles[testfiles.Length - 1];
                    }
                    else
                    {
                        Guid guidObj = Guid.NewGuid();
                        fname = file.FileName + guidObj.ToString();
                    }                    
                    fname = Path.Combine(Server.MapPath("~/images/Uploads/ImportExcel"), fname);
                    if (_dataExchangeBusiness.IsExcelFile(fname)==true)
                    {                       
                        file.SaveAs(fname);
                        return Json(new { Result = "true", Message = "" });

                    }
                     else
                    {
                        return Json(new { Result = "false", Message = "" });
                    }                                      
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            // return Json(new { Result = "OK" ,Message="File validated succesfully"});
            return null;
        }
实际上,该文件已正确上载。我想用文件名附加Guid。当我用Guid附加文件名时,它会附加在文件扩展名之后

像这样其他费用\u 01.01.2011\u E20.xlsx7ac9dbdb-67bb-434c-8465-6a1f7e5bfc83 我期待这样的结果OtherExpense\u 01.01.2011\u E20\u 7ac9dbdb-67bb-434c-8465-6a1f7e5bfc83.xlsx您可以使用和方法将文件名与GUID连接起来(注意,这两种方法都需要
System.IO
命名空间):

您可以使用和方法将文件名与GUID连接起来(请注意,两者都需要
System.IO
namespace):


file.FileName
包含文件的全名,包括扩展名。您必须使用文件名字符串。类似于
fname=file.FileName.Substring(0,file.FileName.Length-5)+guidObj.ToString()+“.xlsx”
应该可以工作,在正确清理文件扩展名之前,可能必须使用'file.FileName.Length-5'。您还可以为扩展名设置一个变量,这样就可以避免使用神奇的字符串。但是我们如何指定特定的长度呢。文件名长度可能会发生变化。是否有任何函数(如GetExtension(fname))来获取文件名而不使用outextension@dhanildinesan
file.FileName.Length
提供文件名的长度,包括扩展名。-5是取出字符串的最后5个字符。下面是一个小示例,演示了如何执行此操作。
file.FileName
包含文件的全名,包括扩展名。您必须使用文件名字符串。类似于
fname=file.FileName.Substring(0,file.FileName.Length-5)+guidObj.ToString()+“.xlsx”
应该可以工作,在正确清理文件扩展名之前,可能必须使用'file.FileName.Length-5'。您还可以为扩展名设置一个变量,这样就可以避免使用神奇的字符串。但是我们如何指定特定的长度呢。文件名长度可能会发生变化。是否有任何函数(如GetExtension(fname))来获取文件名而不使用outextension@dhanildinesan
file.FileName.Length
提供文件名的长度,包括扩展名。-5是取出字符串的最后5个字符。这是一个演示如何工作的小例子。让我试试这个。这一个工作。谢谢。让我试试这个。这一个工作。谢谢
Guid guidObj = Guid.NewGuid();

string baseName = Path.GetFileNameWithoutExtension(file.FileName);
string extension = Path.GetExtension(file.FileName);

fname = baseName + guidObj.ToString() + extension;