Summary: ServicePackFiles contains the files updated by the Service Packs issues since your install. It can be deleted if you have the files elsewhere.
I just installed service pack 2 for my Windows XP Home Edition. Can I remove the service pack files folder in my windows folder?
•
Yes, but you probably don't really want to.
Let me explain why.
•
The short answer is that if you remove it, you may at some future date be asked to insert the Windows installation CD if Windows believes it needs to install or repair an operating system file. The problem is that your CD probably only has SP1 on it, if that. Windows will insist on your inserting the SP2 disk - which you likely don't have.
If you leave the folder, usually C:\WINDOWS\ServicePackFiles, and its contents in place, then Windows can simply pick up what it needs, when it needs it from there without ever bothering you.
It's very much like the I386 folder that I've discussed before. In fact, on my machine at least, there's an I386 folder within C:\WINDOWS\ServicePackFiles that actually contains all the files updated by service pack 2. So the best way to think of that ServicePackFiles is as an SP2 update to the I386 folder that may be elsewhere on your machine.
•
In a sense the I386 folder (and the ServicePackFiles\I386 folder) are conveniences. They're really just there because the disk space to hold them is small these days compare to drive sizes, and they allow Windows to silently and quickly grab files it needs. The best example is when you install a new device. Normally Windows would ask you for the installation CD in order to get the drivers needed for that device. With the I386 folders already on your machine, Windows can simply get what it needs from there. Presumably it first checks the ServicePackFiles\I386 folder for updated files and if none are found it looks in the original I386 folder.
You can delete it, just be prepared to need to insert your original installation CD if Windows ever needs it, as well as an SP2 CD if you have one.
The good news is that like the I386 folder, you can move your ServicePackFiles instead of deleting it. You just need to change a registry setting to do so.
Using Registry Editor, locate the key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\SourcePath. Here's mine right now:

Here you can see that I've altered the SourcePath setting to control where my I386 folder lives (I've placed it on a server named "freenas" on my network in a shared "notenmax", and in a folder "\machine_specific\leo\i386" - note that the i386 portion isn't specified in the registry).
We can make a similar change for the ServicePackFiles by changing the ServicePackCachePath and ServicePackSourcePath entries. Here's mine after making that change:

Here you can see that I've told Windows to find the service pack files out on that other server on my network. After copying the contents of the folder to that location on that server, I can now safely delete ServicePackFiles on my machine.
Related:
Ask Leo! - How do I tell Windows where my I386 folder has moved?
Ask Leo! - So just what *is* the I386 directory anyway?
Article C3192 - October 25, 2007
Leo,
Are there other folders that can also be relocated, like the Fonts folder?
Also, the shortage of space on the boot drive can be a real a problem on upgraded machines. My wife's computer was upgraded from Win98 to XP years ago, and I suspect there are other files and folders that could simply be deleted. Have you considered an article covering this aspect of the space problem?
Posted by: Jeff Hil at November 7, 2008 5:31 PMThanks Leo. I have a win32 partition that's dead out of space and I can't specify directory for a particular setup.exe. Now I can have both ServicePackFiles on an external and this gynormous phone application coexisting. Woohoo!
Posted by: Albert at February 2, 2009 12:29 PMThe files cannot be copied as they are in use.
Posted by: C at February 8, 2009 4:20 AMIts always preferable to compress the folder servicepackfiles\I386 rather than deleting.
Posted by: shiva at February 17, 2009 4:30 AMJust FYI, If you make this registry change, you may need to point the location in all the Windows Side-By-Side Assemblies to the same location. Once an assembly is installed, it retains the full path to the old service pack files folder. Notice about 80 entries of the following under codebases... so be preparred to actually edit each assembly's location in the registry, because you still may wind up with the insert cd issue otherwise.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Installations\x86_Microsoft.Tools.VisualCPlusPlus.Runtime-Libraries_6595b64144ccf1df_6.0.9792.0_x-ww_08A6620A\Codebases\U_KB924667]
Posted by: Jason Raymond at January 28, 2010 8:32 AM"Prompt"="Windows Server 2003 KB924667 Source Files"
"URL"="D:\\Support\\ServicePackFiles\\i386/vcrtl.man"