ProgramData文件夹是干什么用的?

ProgramData文件夹是Vista引入的一个系统文件夹,从它的名称可以看出,它保存了应用程序所需的数据,比如一些自定义的设置,或者缓存文件,都可能会存放在这里。

ProgramData是一个隐藏文件夹,如果你的资源管理器没有开启“显示隐藏文件夹”的话,它可能不会被显示出来,但是在地址栏输入“C:\ProgramData”还可以看到它的内容的。

至于它能不能被删除,建议不要删。删除之后可能会影响各种应用程序的正常运行,从而导致系统不稳定。

除了ProgramData之处,Program Files和Program Files (x86)也保存了重要的数据,详见这里

如何删除Windows.old文件夹

Windows 8 Consumer Preview已经正式发布,你是不是正在安装了呢?

安装完成之后,你有可能看到C盘下面有一个Windows.old的文件夹。这个文件夹会很大,可能会超过20G。但它并不是系统的一部分。Windows.old里存放的内容,是上一次的Windows安装,就是你安装Windows 8之前使用的系统,被完完整整地保留了下来。它的作用是当你想卸载Windows 8的时候,可以帮你还原回之前所用的系统。

Windows.old通常来说用处不大,因为你选择了Windows 8,并且它真的很好用。那接下去要做的事便是把它删除。Windows.old拥有一些特殊的权限,使得它不能直接在资源管理器里被删掉,可能是为了防止用户的误操作。当然这并不表示它不能被删除。删除Windows.old的方法如下:

1. 在Metro的主菜单中键入“Cleanup”,在“设置”一栏中可以看到:

2. 点击图标,然后选择系统盘(通常为C盘)

3. 点击左下角的清理系统文件,然后再次选择C盘

4. 勾选“以前的Windows安装”和“临时Windows安装文件”,然后点击确定,就可以把Windows.old文件夹删除了。

这样,C盘的可用空间瞬间就多了很多……

神奇的SysNative文件夹

其实%WINDIR%\SysNative文件夹是不存在的,它只是64位Windows系统提供的一种重定向机制。

我们已经知道64位Windows通过System32和SysWoW64两件文件夹来区分64位和32位的系统文件,当32位的应用程序尝试访问System32文件夹的时候,系统会自动把它转到SysWoW64文件夹,这样32位应用程序在32位系统和64位系统就都可以运行了,(而不需要为了64位系统而把System32改成SysWoW64)。

这样就出现了一个问题,32位的应用程序怎么访问真正的System32文件夹呢,即存放64位系统文件的文件夹?答案就是通过SysNative文件夹。这个文件夹并不存在,即在资源管理器中找不到,但当32位的应用程序尝试访问这个文件夹时,64位的Windows会把它重定向到真正的System32文件夹,从而提供了一种让32位应用程序访问64位系统文件的方法。具体细节请参考MSDN

Program Files (x86)文件夹是干什么的

今天在微博上看到有人问这个问题。在装好64位的Windows之后,能在系统盘(通常是C盘)下看到这么一个文件夹,它比我们都知道的Program Files文件夹多出来个"(x86)"的后缀。那这个带"x86"的文件夹和不带"x86"的有什么区别呢?

简单来说:Program Files (x86)存放了一些32位的系统文件。它和正常的Program Files以及Windows文件夹一样,都属于系统文件夹,请勿随意改动。

64位Windows中提供了一种技术,Windows on Windows 64(即WoW64)。它可以使32位的应用程序正常地运行在64位的Windows中,这样用户在从32位到64位过渡的过程中,不会感受到很大的不便。为了能让32位的程序正常运行,64位的Windows中自带了一大部分的32位的系统文件,当32位程序运行的时候,系统会给它虚拟出一个32位的环境,这样32位程序会以为自己运行在32位Windows中。Windows的系统文件主要是存放在%SystemDrive%\Program Files和%Windir%\System32中(即通常的C:\Program Files和C:\Windows\System32)。64位系统中,这两个文件夹存放的是64位的系统文件,为了存放32位的同名系统文件,64位系统中有另外两个文件夹与之对应,%SystemDrive%\Program Files (86)和%Windir%\SysWoW64(即通常的C:\Program Files (86)和C:\Windows\SysWoW64)。

当32位程序需要访问Program Files或者System32中的文件时,系统会自动转向到Program Files (x86)或者SysWoW64中,这样32位的程序就可以正常的在64位Windows中运行了。类似的情况也发生在应用程序安装的时候,64位的程序一般都会被安装到Program Files中,而32位的程序则是装在Program Files (x86)中。

从64位系统的角度来说,WoW64只是提供了兼容32位程序的方法,而系统本身则完全是64位的,所以把Program Files (x86)和SysWoW64这两个文件夹删除,并不会影响系统的正常运行,但是这种做法是非常不推荐的。现在64位应用程序的普及率并不高,很多厂商不愿意在64位方面投入大量精力,比如常用的聊天工具和多媒体播放工具等。在实际使用过程中,很难避免使用32位的应用程序,所以还是把WoW64留着吧。

另外补充一些常见问题:
为什么C盘和D盘下都有Program Files (x86)?
Program Files、 Program Files (x86)和Windows文件夹通常都存在于同一个盘(分区)中,如果某个盘下面只有Program Files而没有Windows的话,则它不是系统文件夹,删除后不影响系统运行,当然有可能会影响某些软件。

在命令行(DOS)下如何进行Program Files (x86)文件夹
现代的Windows都支持长文件名了,可以直接CD "Program Files"或者CD "Program Files (x86)",注意加引号。
如果你是在原古的DOS环境下,文件(夹)名称只能有8个字符那么长,而Program Files显然是多于8个字符了,它会被自动缩写成如“progra~1”的形式,在C盘下运行CD progra~1命令可以进行Program Files,或者CD progra~2进入Program Files (x86)。
更复杂的方法可以参考这篇文章

32位和64位系统有什么差异?
请看这里

System Volume Information文件夹是干嘛用的?

在每个硬盘分区里都会有一个文件夹叫做“System Volume Information”,而且一般用户还不能访问。它的字面意思是用来存放系统信息的,但是具体存了哪些东西呢?

根据Raymond的解释,它存放了以下信息:

  • 系统还原的数据。系统还原的数据可以在控制面板中删掉。
  • 分布链接跟踪服务的数据,用于个修复快捷方式和文档的链接。
  • 文件索引服务的数据,用于快速查找文件。
  • 卷影服务,主要用于系统文件的备份。
  • Vista系统还用它来保存WinFS的数据库。

如果以上的数据对你来说都没什么用,可以停用上述服务,以减少System Volume Information文件夹的大小。