0

Web サーバーからジャンク ファイルを削除するためのこの VB コードがあります。コードは正常に動作しているようで、このコードを自動化して、SQL ジョブを使用して毎日実行したいと考えています。どうすればそれができますか?

コードは次のとおりです。

Public Sub GetFilesAndFolders()
    Dim dirInfo As DirectoryInfo = New DirectoryInfo(Server.MapPath("~/test"))
    Dim fileInfo() As FileInfo = dirInfo.GetFiles("*.*", SearchOption.AllDirectories)
    Dim fileExist As ArrayList = New ArrayList()
    Dim pathExist As ArrayList = New ArrayList()
    Dim fileToDelete As ArrayList = New ArrayList()
    pathExist = returnPathExist()
    For Each d As FileInfo In fileInfo
        If String.Format("{0:dd/MM/yyyy}", d.CreationTime) = Date.Today Then
            fileExist.Add("~\test\" & d.Name)
        End If
    Next

    For Each listElement As String In fileExist
        If Not pathExist.Contains(listElement) Then
            fileToDelete.Add(listElement)
        End If
    Next

    For Each item As String In fileToDelete
        Dim imageFile As FileInfo = New FileInfo(HttpContext.Current.Server.MapPath(item))
        If imageFile.Exists Then
            File.Delete(HttpContext.Current.Server.MapPath(item))
        End If
    Next

End Sub

Function returnPathExist() As ArrayList
    Dim pathExist As ArrayList = New ArrayList()
    'declare connection to the database and stored procedure
    Try
        cnn.Open()
        rdr = cmd.ExecuteReader
        While rdr.Read()
            pathExist.Add(rdr("test"))

        End While
        rdr.Close()
    Finally
        cnn.Close()
        cnn.Dispose()
    End Try
    Return pathExist
End Function

CLR を使用したいのですが、どの CLR を追加すればよいかわかりません。モジュール、クラス、ストアド プロシージャ、または ??? また、CLR は、上記の returnPathExist 関数でストアド プロシージャにアクセスする必要がある httpcontext と system.Configuration.ConfigurationManager をサポートしていません。

アドバイスありがとうございます。

アップデート:

これが機能するまであと一歩です。エラーをスローする行は次のとおりです。

Dim dirInfo As DirectoryInfo = New DirectoryInfo(Server.MapPath("~/test"))

Dim imageFile As FileInfo = New FileInfo(HttpContext.Current.Server.MapPath(item))

File.Delete(HttpContext.Current.Server.MapPath(item))

HttpContext.Current は CLR では使用できないようです。本当ですか?これを修正するための回避策はありますか?

ありがとう。

4

1 に答える 1

0

パスの構成設定が必要です。 HttpContext.CurrentASP.NET 要求/応答コンテキストに対してのみ有効です。

于 2013-01-30T00:59:17.260 に答える