tmp files - so many tmp files!

J

Jumbo Shrimps Jr.

Once our Excel spreadsheet is opened, between
3000 - 4000 tmp files are created in the
...\Local Settings\Temp directory.
The next time Excel is opened, it takes five minutes
for a(any) spreadsheet to load, effectively disabling
Excel.

How can I prevent these tmp files from being created?
 
B

Bob Phillips

Jumbo,

You can't stop them from being created but you can tidy them, up.Here is a
VBscript script that I use to do just that. I have a scheduled job that runs
every time I login which rujns this script.

This code empties the temp directory, but it could be amended for any
directory for files ending in .tmp. You're welcome to it. Just put it in a
..vbs file and either put it on the desktop or a desktop shortcut to it, and
launch it with a double-click. I run a scheduled job to launch it on startup

'---------------------------------------------------------------------------
' File: tempDirTidy
' Function: deletes inactive files from the Windows Temp directory
' i.e. files not automatically deleted by the creating process
'---------------------------------------------------------------------------

Const TemporaryFolder = 2 'for GetSpecialFolder

Set FSO = CreateObject("Scripting.FileSystemObject")

'init an empty array (UBound will be -1)...
'
'we use an array and store the file objects as this avoids any problems
' with altering the contents of the Files collections while they
' are being iterated.

arFiles = Array()
count = -1

'get the path to the temp folder
'
tempdir = FSO.GetSpecialFolder(TemporaryFolder)

'load the (global scope) array arFiles
'SelectFiles calls itself recursively for SubFolders

SelectFiles tempdir

'the error trap is in case any are in-use...

dCount = 0
For Each file In Arfiles
On Error Resume Next
file.Delete True
If Err.Number = 0 Then
dCount = dCount + 1
End If
Err.Clear
On Error Goto 0
Next

'now go back and delete empty folders below the temp folder

DeleteEmptyFolders tempdir,False

'comment out for "silent" operation,
' or add support for a "/s" command-line switch.

Msgbox count+1 & " files were found in " & tempdir & vbcrlf & dCount & " of
those files were deleted.", vbInformation,"Windows Temp Directory Tidy-up"


'---------------------------------------------------------------------------
Sub SelectFiles(sPath)
'---------------------------------------------------------------------------

'select files to delete and add to array...

Set Folder = FSO.Getfolder(sPath)
Set Files = Folder.Files

For Each file In Files
Count = Count + 1
Redim Preserve arFiles(Count)
Set arFiles(Count) = file
Next

For Each fldr In Folder.Subfolders
Selectfiles Fldr.Path
Next

End Sub


'---------------------------------------------------------------------------
Sub DeleteEmptyFolders(sPath,fDeleteThisFolder)
'---------------------------------------------------------------------------

Set Folder = FSO.GetFolder(sPath)

'recurse first...

For Each fldr In Folder.Subfolders
DeleteEmptyFolders fldr.Path,True
Next

'if no files or folders then delete...

'fDeleteThisFolder is False for the root of the subtree,
' and true for sub-folders (unless you want to delete
' the entire subtree if it is empty).

If (Folder.Files.Count = 0) And _
(Folder.Subfolders.Count) = 0 And _
fDeleteThisFolder Then
Folder.Delete
Exit Sub
End If

End Sub

'---------------------------------
end-script ---------------------------------

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top