背景技术
外壳名字空间将由该外壳管理的文件系统和其它对象组编成树形分层结构。名字空间可包括两种基本类型的对象:文件夹和文件。文件夹可被看作树形分层结构的节点,而文件则是树形分层结构的叶子。目前,当用户登录到计算设备时,即创建了其中该用户可存储用户专用信息和以备将来使用的配置信息、并使其与登录到该机器的其他用户保持分隔的用户配置文件。配置信息可包括特定工具栏设置、屏幕分辨率设置和/或收藏夹。
在诸如Window品牌的XP操作系统之类的现有操作系统中,用户配置文件包含各种公知文件夹,诸如My Documents(我的文档)文件夹或My Pictures(我的图片)文件夹。这些公知文件夹可为开发者和用户存取信息提供跨越多个应用程序和计算机网络环境的访问。
目前名字空间配置的一个缺点涉及由于应用数据和用户数据两者的混合对名字空间的污染。目前名字空间的布局未在用户数据空间与应用数据空间之间提供明确的分隔。例如,图2示出了用于诸如MicrosoftWindowXP的现有技术外壳名字空间配置200。参看图2,可显示许多个文件夹,其中各个文件夹属于包括虚拟文件夹、固定文件系统文件夹、公共文件夹和分用户文件夹在内的四种类型之一。
虚拟文件夹可以是出现在外壳名字空间中的虚拟外壳文件夹,并且可能不具有任何与它们相关联的实际文件系统文件夹。例如,Printer(打印机)文件夹可以是一虚拟文件夹。固定文件文件夹可以是不通过外壳管理的文件系统文件夹,并且在系统安装时其位置就被固定。例如,“Windows(视窗)”文件夹224和“ProgramFiles(程序文件)”文件夹220可以是固定文件文件夹。公共文件夹可以是用于在不同用户之间共享数据和设置的文件系统文件夹。例如,机器的所有用户可共享公共桌面文件夹,诸如desktop(桌面)文件夹202。最后,分用户文件夹可以是位于个人配置文件之下且为单个用户所拥有的文件系统文件夹。例如,My Pictures文件夹可例示一个用于存储用户图片的分用户文件夹。
参看图2,名字空间分层结构200的终极根可以是Desktop202。在根目录Desktop202之下,可设置许多其它文件夹,诸如My Computer(我的电脑)文件夹206、My Network Places(我的网络位置)文件夹208和Recycle Bin(回收站)210。My Computer文件夹206可包括诸如Local Disk(C:)(本地磁盘(C:))212、DVD-RWDirve(D:)(DVD-RW驱动器(D:))214和Control Panel(控制面板)216的各种文件夹或映射驱动器。本领域技术人员将理解,许多附加映射驱动器和/或文件夹可被安装并列示于名字空间分层结构200中。
本地磁盘(C:)212可包括各种附加文件夹和文件,诸如Documents and Settings(文档和设置)文件夹218、Program Files(程序文件)文件夹220、Uninstall(卸载)文件夹222和WINDOWS(视窗)文件夹224。Program Files文件夹220可包含开发者或用户可能已安装到特定计算设备中的各种应用程序。Uninstall文件夹222可提供帮助用户从计算设备中删除文件和/或应用程序的实用程序。WINDOWS文件夹224可包含用于Windows操作系统的各种文件夹和文件。
图2a示出了用于诸如MicrosoftWindowsXP的操作系统的用户配置文件名字空间的配置。参看图2a,它示出了一示例性的用户配置文件名字空间分层结构300。Documents and Settings文件夹218可包括诸如All Users(所有用户)文件夹226和多个用户的文件夹228的许多文件夹和文件。例如,诸如用户GeorgeKiessling的用户可拥有通过使用诸如“GKiessling”的格式的用户名来标识的用户文件夹。本领域技术人员将理解,每个用户可拥有他们自己的用户文件夹228以便为所标识用户存储具体信息。例如,用户文件夹228可包含附加的子文件夹,诸如My Documents文件夹230、Desktop文件夹280、Start Menu(开始菜单)文件夹282、Favorites(收藏夹)文件夹284以及图2a中所示的其它文件夹。
My Documents文件夹230可被用作用户所创建的所有文档的默认位置。MyDocuments文件夹230可包括诸如My Music(我的音乐)文件夹232、My Pictures文件夹234和My Videos(我的视频)文件夹236的子文件夹。My Music文件夹232、My Pictures文件夹234和My Videos文件夹236可表示其中用户可存储他们的音乐、图片和视频数据文件的默认位置。
当前名字空间分层结构的一个缺点是,当前名字空间分层结构在其根目录上包含应用程序数据和用户数据两者的混合。在当前名字空间分层结构中,应用数据与用户数据之间没有明确地分隔。应用数据和用户数据两者的混合使开发者和用户感到混乱。例如,图2a示出了My Documents文件夹230之下的My Music文件夹232、My Pictures文件夹234和My Videos文件夹236,尽管这些子文件夹几乎与文档无关。另外,被污染的名字空间会导致不适当的文件备份,因为用户可能对哪些文件需要日常保存感到迷惑。
此外,关于应用程序应当如何将分用户应用数据在用户配置文件的内部存储,现有名字空间分层结构对开发者或应用程序编写者没给出很多指导。另外,几乎不存在关于应用程序开发者应当如何在应用程序文件夹的内部构建他们的文件夹的文档记录。其结果是,应用程序开发者在名字空间分层结构的根目录上创建新文件夹,从而进一步拥塞名字空间。
因而,提供一种将名字空间中的应用数据和用户数据分隔开的方法和数据结构是本领域的进步。此数据结构可为开发者或用户提供直观的配置文件布局,同时支持传统应用程序。此外,此方法和数据结构将使得用户能够以最小的工作量发现并利用由位于同一计算设备上或在网络上的各种应用程序所创建的其它公共或用户文件夹。
具体实施方式
示例性操作环境
为了澄清本发明的内容,在此提供一些相关术语的定义。
配置文件:向操作系统和应用程序提供用于存储用户专用数据和设置的分用户位置。
RUP:即:“漫游用户配置文件”;一种随着用户在企业内漫游而在各种计算设备上提供相类计算环境的配置文件。
公知文件夹:外壳已知的特殊类型的文件夹。
图1示出了在其上可实现本发明的适当计算系统环境100的一个示例。计算系统环境100仅作为适当计算环境的一个示例,而非旨在对本发明的用途范围或功能性做任何限制。计算环境100也不应当解释成对示例性操作环境100中所示元件的任何一个或其组合有任何的依赖性或要求。
参看图1,用于实现本发明的示例性系统包括计算机110形式的通用计算设备。计算机110的组件可包括但不限于:处理单元120;系统存储器130;以及将包括系统存储器在内的各种系统元件耦合到处理单元120的系统总线121。系统总线121可以是包括使用各种总线架构中的任一种的存储器总线或存储器控制器、外围总线以及局域总线在内的若干类型总线结构中的任意一种。作为示例而非限制,这些架构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局域总线、以及也称为夹层(Mezzanine)总线的外设部件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110访问的任何可用介质,包括易失性和非易失性介质、可拆卸和不可拆卸介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任意方法和技术实现的易失性和非易失性、可拆卸和不可拆卸介质。计算机存储介质包括但不限于:RAM、ROM、EPROM、闪存或其它存储技术、CD-ROM、数字通用光盘(DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储器或其它磁存储设备、或者可被用来存储所需信息并可由计算机110访问的任意其它介质。通信介质通常以诸如载波或其它传送机制的已调制数据信号的方式体现计算机可读指令、数据结构、程序模块或者其它数据,并且包括任意信息传输介质。术语“已调制数据信号”是指以在信号中编码信息的方式设置或改变了其特性中的一个或多个的信号。作为示例而非限制,通信介质包括诸如有线网络或直接连接的有线介质、以及诸如声波、RF、红外线和其它无线介质的无线介质。以上介质的任意组合应当也可包括在计算机可读介质的范围内。
系统存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器形式的计算机存储介质。包含有助于诸如在启动期间在计算机110内的元件之间传递信息的基本例程的基本输入/输出系统(BIOS)133通常存储在ROM131中。RAM132通常包含通过处理单元120直接存取和/或立即操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可拆卸/不可拆卸、易失性/非易失性计算机存储介质。仅作为示例,图1示出了对不可拆卸的非易失性磁性介质读或写的硬盘驱动器140、对可拆卸的非易失性磁盘152读或写的磁盘驱动器151、以及对诸如CD ROM或其它光学介质的可拆卸的非易失性光盘156读或写的光盘驱动器155。可被用在示例性操作环境中的其它可拆卸/不可拆卸、易失性/非易失性计算机存储介质包括但不限于:磁带盒、闪存卡、数字通用光盘、数字视频磁带、固态RAM、固态ROM等。硬盘驱动器141通常经由诸如接口140的不可拆卸存储器接口连接到系统总线121,而磁盘驱动器151和光盘驱动器155通常经由诸如接口195的可拆卸存储器接口连接到系统总线121。
以上讨论并在图1中示出的驱动器以及与它们相关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146以及程序数据147。注意:这些组件可与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。这里,操作系统144、应用程序145、其它程序模块146和程序数据147被赋予不同附图标记,以便最低限度说明它们是不同的副本。用户可通过诸如键盘162和通常称之为鼠标、跟踪球或触摸板的无线定点设备161向计算机110输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些或其它输入设备常常经由耦合于系统总线的用户输入接口160连接到处理单元120,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)的其它接口和总线结构连接。监视器191或其它类型的显示设备也经由诸如视频接口190的接口连接到系统总线121。除监视器之外,计算机还可包括诸如扬声器197和打印机196的其它外围输出设备,它们可经由输出外围接口190连接。
计算机110可工作在使用到诸如远程计算机180的一个或多个远程计算机的逻辑连接的网络化环境中。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且通常包括以上就计算机110所描述的组件中的许多或所有组件,尽管图1仅示出了存储设备181。图1中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这些网络环境在办公室、企业计算机网络、内联网和因特网中是普遍的。
当用在LAN网络环境中时,计算机110经由网络接口或适配器170连接到LAN171。当用在WAN网络环境中时,计算机110通常包括调制解调器172或在诸如因特网的WAN173上建立通信的其它装置。或为内置式或为外置式的调制解调器172可经由用户输入接口160或其它适当的机制连接到系统总线121。在网络环境中,关于计算机110所述的程序模块或其一部分可被存储在远程存储器存储设备中。作为示例而非限制,图1示出了驻留在存储设备181的远程应用程序185。应当理解,所示网络连接仅是示例性的,并且也可使用在计算机之间建立通信链接的其它装置。外围接口195可连接到诸如扫描器(未示出)或数字摄像机194的视频输入设备,其中输出外围接口可支持包括通用串行总线(USB)接口的标准接口。
本发明可在许多其它通用或专用计算系统环境或配置中运行。可适合用于本发明的众所周知的计算系统、环境和/或配置的示例包括但不限于:个人计算机、服务器计算机、手持型或膝上型设备、多处理机系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、微型计算机、大型计算机、包括上述系统或设备的任意种类的分布式计算环境等。
可在由计算机执行的诸如程序模块的计算机可执行指令的通用环境中描述本发明。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。也可在其中通过经由通信网络链接的远程处理设备执行任务的分布式计算环境中实践本发明。在分布式计算环境中,程序模块可位于包括存储器存储设备的本地或远程计算机存储介质中。
示例性实施例的描述
图3示出了根据本发明的一个方面的名字空间。图3所示名字空间300可包括驻留在诸如磁盘驱动器C301的计算机磁盘驱动器中的文件夹和文件。本领域技术人员将理解也可使用其它磁盘驱动器,因为磁盘驱动器C的使用是示例性的,而非旨在作为限制。除此之外,本领域技术人员应当理解,以下描述中所使用的文件夹的名称将可更改,且这种更改落在所述本发明的范围内。此外,以下描述中所示的具体文件夹名称的使用是示例性的,而非旨在作为限制。
外壳可通过用户接口或通过应用程序将这些对象组编成分层名字空间结构。外壳可包含特殊文件夹,这种特殊文件夹的位置和存在对于系统而言是已知的,并且从外壳中的许多位置如Start Menu(开始菜单)提供了这种特殊文件夹的访问。
在本发明的一个方面中,名字空间300可包含诸如程序文件200和视窗文件夹224的许多其它文件夹。在本发明的一个实施例中,可直接在磁盘驱动器C301下创建Users(用户)文件夹302。Users文件夹302可包括许多用户的配置文件。例如,安装应用程序的用户或开发者应当直观地意识到,用户的配置文件可安装在Users文件夹302下。
Users文件夹302可包含一个Public(公共)文件夹304和用户名(username)文件夹306。Public文件夹306可包括用户希望与本地机器上的其他用户、或通过网络与其他用户进行共享的所有文件和文件夹。Public文件夹306可能不具有分用户注册表键(hive),因为它是一个从来不被加载的配置文件。另外,在登录时,外壳可将诸如开始菜单或桌面之类的特定公共文件夹与常规用户文件夹集结,以便为它们提供这些文件夹的统一视图。例如,添加到Public配置文件的Desktop文件夹中的图标对于登录到计算机的任意用户都是可见的。公共文件夹306可给用户和/或开发者提供与所有获授权用户默认进行共享的共享文件夹。
可向拥有计算机系统账户的每个用户提供用户名文件夹306,以便向每个用户提供存储数据和定制用户设置的区域。用户名(username)文件夹306可被用作各种应用程序的打开/保存对话框所用的默认文件夹位置。用户名文件夹306可各自包含针对每个用户的相似分层结构,如通过Desktop文件夹308、Documents(文档)文件夹310、Downloads(下载)文件夹312、Favorites(收藏夹)文件夹314、Music(音乐)文件夹316、Pictures(图片)文件夹318、Videos(视频)文件夹320、应用数据(AppData)文件夹322和隐藏文件NTUSER.DAT 354所示。本领域技术人员应当理解,可在用户名文件夹306下创建许多附加文件夹。结合各种公知文件夹使用用户名文件夹来存储数据和定制用户设置,可提供有益并合乎逻辑的存储位置。
Favorites文件夹314、Downloads文件夹312、Music文件夹316、Pictures文件夹318和Videos文件夹320可表示用户在其中可分别存储他们的收藏因特网链接、下载、音乐、图片/照片和视频数据文件。在本发明的一个方面中,Downloads文件夹312、Music文件夹316、Pictures文件夹318和Videos文件夹320是用户名文件夹306的子文件夹而不是Documents文件夹310的子文件夹。例如,保存音乐文件和/或图片的用户或开发者将直观地意识到,音乐文件可被存储在Music文件夹316中,而图片可被存储在Pictures文件夹318中。用户无需尝试将这些文件夹定位成Documents文件夹310的子文件夹,因为音乐文件也好图片也好都不会在Documents文件夹310下被逻辑地搜索到。
Desktop文件夹308可被用来存储包括文件和快捷方式在内的桌面对象。Documents文件夹310可提供存储由特定用户创建的所有文档的默认位置。Downloads文件夹312可提供保存下载自诸如因特网的数据源的数据的默认位置。例如,诸如所发现的可供某个学生在特定课题上使用的研究论文之类的信息可以下载并保存在Downloads文件夹312中,供便将来使用。
应用数据(AppData)文件夹322可向开发者提供一个存储分用户应用数据和二进制码的默认位置。应用数据文件夹322可以是隐藏文件夹,该文件夹可在开发者安装新应用程序时使用,或者由应用程序自身用来检索分用户数据或设定。例如,较低级别的用户可能不需要访问应用数据文件夹322,因此这个文件夹可进行隐藏直到用户需要。应用数据文件夹322可包括子文件夹,诸如Local(本地)文件夹324和Roaming(漫游)文件夹325。
Local文件夹324可包含机器依赖性的、或因过大而不能有效漫游的应用数据和设置。相反,Roaming文件夹325可包含非机器依赖性应用数据和设置,诸如包含医学定义之类的信息的用户定制词典。参看图3,Local文件夹324可包含临时文件夹326和厂商文件夹,如Microsoft厂商文件夹328。Microsoft厂商文件夹328可包括诸如Windows文件夹330之类的许多子文件夹。类似地,Windows文件夹330可包含诸如Temporary Internet Files(临时因特网文件)文件夹322和History(历史记录)文件夹334之类的附加文件夹。本领域技术人员应当理解,厂商文件夹可被用来存储与每个厂商或制造商相关联的各种应用程序或设置。例如,可在Microsoft厂商文件夹328下创建针对安装在计算设备上的每个Microsoft应用程序的子文件夹。
根据本发明的一个方面,当在应用数据文件夹322中创建子文件夹时,可能需要提供安装的应用程序或产品的唯一标识符。唯一标识符可标识被安装的产品、以及该产品的相应制造商。例如,分层结构可以是“Microsoft\Office”,它将Microsoft标识为厂商,而将Office标识为产品。诸如版本号、服务通告(service release)、SKU信息、次要产品名称、国家类别、特征名称、组件名称和/或部署标识符之类的附加信息可被包括在唯一标识符中。这些附加信息可避免单个产品的多重部署问题,并且进一步标识应用程序和/或产品的特征。示例性唯一标识符可包括“Microsoft\Windows\7.0 SPI Home Edition”、“Microsoft\Office\12.0 EnterpriseEdition\Word”和“Microsoft\Windows\7.0 SPI Home Edition\System\Serviced.”
Roaming文件夹325也可包括诸如Microsoft文件夹336的厂商文件夹。Microsoft文件夹336可包括诸如Windows文件夹338的许多子文件夹。类似地,Windows文件夹338可包含诸如Cookies文件夹340、Network Shortcuts(网络快捷方式)文件夹342、Printer Shortcuts(打印机快捷方式)文件夹344、Recent(最近打开文档)文件夹346、SendTo(发送到)文件夹348、StartMenu(开始菜单)文件夹350和Templates(模板)文件夹352之类的附加文件夹。这些文件夹中的每一个可包括非机器依赖性应用专用数据和设置,并且当用户登录到不同计算设备时仍可供用户使用。例如,Printer Shortcuts文件夹344可包括访问网络上的各个打印机的快捷方式。当用户登录到不同计算设备时,用户仍可使用Printer Shortcuts文件夹344,从而使得用户能容易地访问位于网络上的不同打印机。
图4示出了名字空间分层结构400的其它方面。在图4中,Public文件夹304可包括用户或开发者希望其他用户或开发者通过本地机器或网络设备进行访问的所有文件和文件夹。Public文件夹304可包括与以上针对用户名文件夹306所讨论的分层结构相类似的分层结构。例如,Public文件夹304可包括Desktop文件夹408、Documents文件夹410、Downloads文件夹412、Favorites文件夹414、Music文件夹416、Pictures文件夹418、Videos文件夹420和应用数据(AppData)文件夹422。应用数据文件夹422可以是隐藏文件夹。
Favorites文件夹414、Downloads文件夹412、Music文件夹416、Pictures文件夹418和Videos文件夹420可表示在其中用户可分别存储、并与其他用户共享他们的收藏因特网链接、下载、音乐、图片/照片和视频数据文件的默认位置。Desktop文件夹408可被用来存储包括文件和快捷方式在内的桌面对象。这些存储的桌面文件和快捷方式对于任意获授权用户都是可用的,因为它们作为Public文件夹304的子文件夹是可访问的。类似地,存储在Documents文件夹410中的文档或者下载到Downloads文件夹412中的信息对于其他获授权用户是可访问的。
在本发明的另一个方面中,在用户名文件夹306中也可包括一个Public文件夹482。Public文件夹482可向用户提供与其他用户共享来自他们自己的配置文件内的信息的能力。此外,一个用户可拥有定义、并个别地控制其他用户对包含在这个Public文件夹482内的数据的权利的能力。例如,开发者可对特定用户赋予只读访问,而其他用户可具有执行访问。Public文件夹482还可包括诸如Dropbox(投件箱)文件夹484之类的子文件夹。Dropbox文件夹484可向用户提供在Dropbox文件夹484中从其他获授权用户处接收专用于这些用户的文件的能力。在本发明的一个实施例中,Dropbox文件夹484可被设置成只写访问,以便防止未获授权用户查看投件箱文件夹484中的文件。为了进一步在名字空间内允许共享,可在用户名文件夹306下创建诸如SharedByMe(由我共享)文件夹490和SharedWithMe(与我共享)文件夹492的隐藏文件夹。SharedByMe文件夹490可包括由该用户与其他用户共享的数据的同步副本。SharedWithMe文件夹492可包括给其他用户的与该用户共享的数据的同步副本。
在本发明的另一个方面中,依靠如图3所示旧的配置文件名字空间分层结构的应用程序的传统应用程序兼容性可通过使用文件系统过滤驱动程序来解决。过滤驱动程序可拦截对文件系统路径的所有打开(open)调用,并确定其是否匹配旧的传统路径。如果是,则它可将该应用程序重新指向取代旧的传统路径的新的有效路径。过滤驱动程序还可包括一个可更新映射表,向过滤驱动程序提供一个经重新映射的传统路径的清单。
在本发明的另一方面中,类似于过滤驱动程序,目录结点(directory junction)也可用来解决传统应用程序兼容性。目录结点与硬链接不同,因为其所涉及的存储对象是独立的目录。可在传统名字空间位置处创建目录结点指向新名字空间位置。当应用程序试图访问传统配置文件位置时,目录结点将该应用程序重新指引到新的有效名字空间位置。
在本发明的另一个方面中,名字空间分层结构可使数据查询更容易,因为查询可被创建成对所用数据组进行分区。例如,查询可由谓项(“什么”-比如“作者是John Smith”)和范围(“哪里”,比如C:\users\jsmith\documents\)构成。名字空间分层结构使得用户可制作对所用数据组进行分区的查询。
根据本发明的另一个方面,图5示出了一种管理存储在名字空间数据结构的多个文件夹中的应用数据和用户数据的方法。在图5中,在步骤502,多个文件夹中的各个文件夹被标识为公共文件夹或分用户文件夹。公共文件夹可定义一个将与计算系统的所有用户共享的文件夹,比如Desktop文件夹。分用户文件夹可以是位于用户配置文件中、并由该单个用户所专有的系统文件夹。例如,Music文件夹可例示一个用于存储特定用户的音乐的分用户文件夹。
在标识了文件夹的可访问性之后,每个分用户文件夹可通过用户标识来分类,如步骤504所示。如上所述,计算系统的每个获授权用户可在系统上具有他们自己的用户配置文件,在其中配置文件存储他们自己的数据和/或用户设置。每个用户配置文件可通过使用根据用户名和姓的字母数字字符的组合来标识。本领域技术人员应当理解,可使用字符的许多种组合来标识用户的配置文件。在步骤506,经标识的分用户文件夹进一步按文件夹类型来分类。最后,在步骤508中,应用数据和用户数据基于这些分类来分隔。应用数据与用户数据的分隔为开发者或用户提供了直观的配置文件布局,同时支持传统应用程序。
虽然已就包括目前实现本发明的优选模式在内的具体实施方式描述了本发明,但是本领域技术人员应当理解,存在上述系统和技术的许多变更和嬗变,它们都落在所附权利要求所阐述的本发明的精神和范围内。