-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\”,它会完美保存,为什么我需要"\"和结束?

4

2 回答 2

0

使用Path.Combine而不是字符串连接。它将根据需要添加斜杠。

于 2013-04-03T11:11:29.950 回答
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”的文件,而第二个引用“D”驱动器“myfolder”目录中名为“ApInterface_01012001_010101.dat”的文件。

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

PS您可能还需要考虑使用 string.Format 来构建文件名以提高可读性

于 2013-04-03T11:27:04.223 回答