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 では使用できないようです。本当ですか?これを修正するための回避策はありますか?
ありがとう。