2013-04-03 89 views
-1
strFilePath = System.Web.HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath) 
strFilePath = str + "ApInterface_" + Format(Now.Date, "dd-MMM-yyyy").Replace("-", "") + "_" + Format(Now, "HH:mm:ss").Replace(":", "") + ".dat" 

我上面的代码片断它在指定的保存文件中的.dat扩展名我的问题是关于路径。当我指定的路径如“D:\ myfolder”,数据将被导出,文件将被打开,但它不会得到保存。如果我指定文件夹为“D:\ myfolder \”它可以完美保存为什么我需要"\"并最终? 可以任何一个解释我。请帮助。它非常紧急!急切等待答案如何知道System.Web.HttpContext.Current.Server.MapPath路径(HttpContext.Current.Request.ApplicationPath)

回答

0

使用Path.Combine而不是字符串连接。它会在需要时添加斜杠。

0

应该不是你的代码是这样的:

strFilePath = System.Web.HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath) 
strFilePath = strFilePath + "ApInterface_" + Format(Now.Date, "dd-MMM-yyyy").Replace("-", "") + "_" + Format(Now, "HH:mm:ss").Replace(":", "") + ".dat" 

因为它的立场,也没有什么“STR”持有的解释。

假设以上是正确的,你需要的 “\” 的原因是因为没有它有两种截然不同的路径:

  • d:\ myfolderApInterface_01012001_010101.dat
  • d:\ MyFolder文件\ ApInterface_01012001_010101 .DAT

第一引用一个在“d”驱动器的根目录中称为“myfolderApInterface_01012001_010101.dat”的文件,而第二参考文件名为“ApInterface_01012001_010101.dat”中的“MyFolder文件”目录“D”驱动器。

正如其他人提到的那样,您可以使用Path.Combine来确定是否已经存在“\”,并且只在需要时添加它。

P.S.您可能还想考虑使用string.Format来构建文件名以提高可读性

+0

str是一个字符串,它从文本框中读取值(其中,我可以指定可以导出我的.dat文件的文件夹) – user2017976

+0

if多数民众赞成的情况下,你的代码的第一行是多余的,但上述解释。如果没有斜杠,则会将目录和文件名合并为一个文件名 – kaykayman

相关问题