Ask Leo! by Leo A. Notenboom

How do I change the location of Windows temporary files?

Search First! Then browse: Categories | Full Archive | By Date | Newsletter

Home » Windows » Windows Configuration

Summary: Windows maintains a location where programs can put temporary files. Sometimes you might want to change that location, and it's fairly easy to do so.

In what I do, I have to handle pretty large files all the time. In my setup, I have 3 hard disks:

  • C: which is meant to only run windows and barely has any space on it left after XP was installed.

  • D: which is where I store all my files.

  • E: where I want my temporary files to be.

How would you go about changing the location of the temp folder to E:/ in Windows XP?

Aside from your small C: partition, you're describing a reasonably good set up. By moving your temporary files to E: you should not only get an improvement in available space on C:, but things might also speed up just a tad.

First, I want to be clear to everyone that we're not talking about Internet Explorer's temporary files. Those are controlled by settings in Internet Explorer's options. Similarly, many applications also allow you to specify alternate locations for temporary files used by that application.

We're talking about Windows itself.

Windows has a concept of a directory where it, and other applications if they so choose, can place files that are for temporary use only.

Fire up a Windows Command Prompt, (typically in Start, All Programs, Accessories), and in that windows type SET followed by the Enter key. Windows will list a number of what are called "environment variables" that make various types of information available to running programs. Two of them will look much like this:

TEMP=C:\DOCUME~1\LeoN\LOCALS~1\Temp
TMP=C:\DOCUME~1\LeoN\LOCALS~1\Temp

TMP and TEMP both specify the directory to be used for temporary files. Both TMP and TEMP are used for compatibility reasons. In this example they actually specify "C:\Documents and Settings\LeoN\Local Settings\Temp", but in 8.3 compatibility representation.

Changing them is easy.

Right click on My Computer and click on Properties. In the resulting dialog click on the Advanced tab and you should see something like this:

System Properties dialog, Advanced tab

Click on the button near the bottom labeled Environment Variables, and you'll see something like this:

System Properties, Environment Variables dialog

You may see both TMP and TEMP listed in the section labeled User variables for (account). That's the common location; each different login account is assigned its own temporary location.

Personally, I prefer to have a single location for the entire system. So if TMP and TEMP are present in the top list, I click on each and then click on Delete. However you can simply edit them, as we're about to edit the System copies, if you prefer.

"... some programs can get confused if the temp directory is set to the root of a drive."

If you scroll down in the bottom list labeled System Variables you'll find TMP and TEMP again. Click on one, and then press the Edit button:

System Properties, Edit Environment Variable dialog

In the Variable value: edit box you can now specify a path to a directory that Windows and many other programs should use for temporary files. As you can see, I've specified a different directory entirely, but still on the C: drive. You could specify "E:\" to use all of E: as your temporary location, but I'd actually recommend creating a subdirectory on E:, such as perhaps "E:\temp" and using that, as some programs can get confused if the temp directory is set to the root of a drive.

Be sure and repeat that process for both TMP and TEMP.

You'll need to restart any running programs for the new value to take effect. In fact, you'll need to restart Windows for it to begin using the new value for its own temporary files.

Article C2986 - April 6, 2007

Was this article helpful? «Yes» «No»

Recent Comments
21 Comments

Hello!
Usually I have 2 accounts (admin and user) in my WinXP and I use this method to keep temp files in one location. I.e. both account's temp folder and the system temp are same. Also this needs some security tip. Because all accounts (admin, user and any built-in ones ) and the system access same folder, I change the folder's permission as "Everyone | Full access". And my question: recently I moved to Win7 and found that I can use this method only for admin account. When I'm trying to access "Computer | Advanced system settings" (where Environment var-s located) from a standard user account, I have to switch to the admin acccount, so I get env var-s of the admin. In WinXP there was no problem. Any help?

Posted by: tmrbtr at January 7, 2010 10:13 PM

Solved:
User accounts | Change my environment variables

Posted by: tmrbtr at January 10, 2010 2:55 AM

Thanks for the article. However, if I would like to have temp environment changed for all my users who logon to a Terminal Service, how do I do that. Is there a registry entry which I could change? I need to change it for all my users do to an application which does not like long paths for TEMP.

Posted by: Mohammed Khawaja at January 26, 2010 8:22 AM

Does this move the files, or just change the pointer for any new entries? I want to actually MOVE the filter in my current TMP and TEMP folders. I have used the above operations, and it works for any new entries. But, I am afraid that, if I move the current info to the new locations, it will screw up any previous file installations and/or registry entries.

Posted by: Carl at March 9, 2010 1:31 PM

Instead of using the GUI is easier to just use the command prompt as:
SET TEMP=F:\Temp (replace with desired location)
SET TMP=%TEMP%

Posted by: Rolando Lopez at March 15, 2010 6:13 PM

Post a comment on "How do I change the location of Windows temporary files?":



(Name will be included when your comment is published.)



(Email Address will not be published.)

Remember Me?

By popular demand...
my tip jar
Cuppa Joe
Buy Leo a Latte!

(you may use HTML tags for style)

RSS feed Subscribe to the RSS Feed specifically for comments on this article.

Before commenting, please...

  • Read the article at the top of this page. If your comment shows you didn't, it'll be deleted and ignored.

  • Comment only on this article. Use the Google search box at the top of the page if you have a question about something else.

  • Don't include personal information in the comment. No email addresses. No phone numbers. No physical addresses.

  • Don't spam. Excessive links to unrelated sites within a comment or across multiple comments will cause all such comments to be removed.

  • Don't ask me to recover lost passwords or hacked accounts. I can't, and those comments will be deleted.

  • I can't respond to every comment. And I can't vouch for the accuracy of others who do.

Please wait. Your comment is being processed ...




Question? Ask Leo!