-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

あなたのコードは次のようなものであってはなりません:

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」が何を保持するかについての説明はありません。

上記が正しいと仮定すると、「\」が必要な理由は、それがないと 2 つの明確に異なるパスがあるためです。

  • D:\myfolderApInterface_01012001_010101.dat
  • D:\myfolder\ApInterface_01012001_010101.dat

1 つ目は「D」ドライブのルート ディレクトリにある「myfolderApInterface_01012001_010101.dat」というファイルを参照し、2 つ目は「D」ドライブの「myfolder」ディレクトリにある「ApInterface_01012001_010101.dat」というファイルを参照します。

他の誰かが言及したように、「\」が既に存在するかどうかを判断し、必要な場合にのみ追加する Path.Combine を使用できます。

PS string.Format を使用してファイル名を作成し、読みやすさを向上させることも検討してください。

于 2013-04-03T11:27:04.223 に答える
0

文字列連結の代わりにPath.Combineを使用します。必要に応じてスラッシュが追加されます。

于 2013-04-03T11:11:29.950 に答える