20

Web サーバーのディレクトリからいくつかの画像ファイルを削除する必要がある場合に、問題なく動作するコードがいくつかあります。

Dim ImageURL As String = dsImages.Tables(0).Rows(iImgRow).Item("ImageURL")
Dim physicalName = Server.MapPath(ImageURL)
oUpload.DeleteFileFromServer(physicalName, iAdid, iImgID)

..しかし、設定された間隔で別のスレッドで実行されているメンテナンス タスクによって、上記のようなファイルを削除する必要があると判断された場合、問題が発生します。

Dim ImageURL As String = dsImage.Tables(0).Rows(i - 1).Item("ImageURL")
Dim iImgID As Integer = dsImage.Tables(0).Rows(i - 1).Item("ImageId")
Dim physicalName As String = HttpContext.Current.Server.MapPath(ImageURL)
oUpload.DeleteFileFromServer(physicalName, iAdID, iImgID)

この後者の場合、HttpContext.Current.Server.MapPath(ImageURL)の値は Nothing です。

この場合のフルパスを取得する方法はありますか?

4

2 に答える 2

1

パスが相対的であると仮定すると、個別のプロセスは、パスが何に関連しているか、どの Web アプリケーションに関連しているかを認識しません。この場合、それを構成に保存し、2 つを一緒に追加するか、~/ で文字列置換を実行する必要があります。

于 2011-01-20T00:30:15.023 に答える