Excessive Image Resource
Hi
So I'm writing a program to clear old images out of some folders. I get the old and new folder
paths from XML and then check each image against my database then I move it using MoveFile()
if it meets my requirements. The one folder I'm checking contains 46,600 images (jpegs, gifs, tifs, bmps and pngs)
with my biggest image being 127 KB.
Now the program runs perfectly and does exactly what it's suppose to however my server resources in this case
were at 95 - 100% the entire time. It also took more than 10hrs to run. Please let me know how I can overcome this.
I need to reduce the system resource usage dramatically. I can't move any images out of the folder and it
has to be done in VB.Net and the images can't be deleted also I have to check all the fields in the SQL. This is my code
Dim value As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
Dim info As System.IO.FileInfo
Dim dr As SqlDataReader
Dim cmd As SqlCommand
Dim sql As String = ""
connections = XDocument.Load("connect.xml")
Dim pathValues = From c In connections.<Connect>.<section> Where c.Attribute("id").Value = "facilities" Select c.<path>.Value, c.<netPath>.Value
' Set the file from which the files will be manipulated and moved from
Dim sourcepath As String = pathValues.ElementAt(0).path
Dim newPath As String = pathValues.ElementAt(0).netPath
value = My.Computer.FileSystem.GetFiles(sourcepath, FileIO.SearchOption.SearchTopLevelOnly, "*.*")
'Loop thru the files retrieved from the source folder
For Each foundFile As String In value
info = My.Computer.FileSystem.GetFileInfo(foundFile)
Dim fileName As String = info.Name
sql = "SELECT MemCat.Pic1, MemCat.Pic2, MemCat.Pic3, MemCat.Pic4, MemCat.Pic5, tempMemCat.Pic1, " +
"tempMemCat.Pic2, tempMemCat.Pic3, tempMemCat.Pic4, tempMemCat.Pic5 " +
"FROM MemCat FULL OUTER JOIN tempMemCat ON MemCat.MemberID = tempMemCat.MemberID " +
"WHERE MemCat.Pic1 = '" + fileName + "' OR MemCat.Pic2 = '" + fileName + "' OR MemCat.Pic3 = '" + fileName + "' OR MemCat.Pic4 = '" + fileName + "' OR " +
"MemCat.Pic5 = '" + fileName + "' OR tempMemCat.Pic1 = '" + fileName + "' OR tempMemCat.Pic2 = '" + fileName + "' OR tempMemCat.Pic3 = '" + fileName + "' OR " +
"tempMemCat.Pic4 = '" + fileName + "' OR tempMemCat.Pic5 = '" + fileName + "'"
SQLS = sql
connSO.Open()
cmd = New SqlCommand(sql, connSO)
dr = cmd.ExecuteReader()
If dr.HasRows = False Then
My.Computer.FileSystem.MoveFile(info.ToString(), newPath + fileName, True)
End If
connSO.Close()
Next