Windows CE使用一组系统目录存储公共信息。系统目录在Pocket PC设备上分别对应不同的物理文件夹,并提供两个用途。第一个用途是使Pocket PC应用程序可以定位重要文件夹,比如Windows文件夹。第二个用途是用来处理地方化问题。在基于不同语言的Pocket PC系统环境里,文件夹的名称有所不同。在表11-3列出了Pocket PC 2003 SE的系统文件夹。
表11-3:Pocket PC 2003 SE的系统文件夹
文件夹 |
位置 |
用途 |
Personal |
\My Documents |
存储用户数据。 |
Programs |
\Windows\”开始”菜单\程序 |
包含Pocket PC应用程序。 |
Start Menu |
\Windows\”开始”菜单 |
包含数据项的快捷方式出现在Strat菜单。 |
Start Up |
\Windows\启动 |
包含在Pocket PC启动时自动启动的应用程序。 |
Windows |
\Windows |
包含Pocket PC的OS文件。 |
Favorites |
\Windows\收藏夹 |
存储供PIE访问的URL快捷方式。 |
在System.IO命名空间里,没有提供任何关于系统文件夹的信息。为了访问系统文件夹的详细信息,需要调用名为SHGetSpecialFolderPath的API函数。SHGetSpecialFolderPath返回由nFolder参数指定的系统文件夹的路径,该函数声明的语法是:
<group id="_x0000_s1026" style="WIDTH: 414pt; HEIGHT: 23.4pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" editas="canvas" coordorigin="2526,7642" coordsize="7200,408"><lock v:ext="edit" aspectratio="t"></lock><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_s1027" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 408px" o:preferrelative="f" type="#_x0000_t75"><font size="3"><font face="Times New Roman"><fill o:detectmouseclick="t"></fill><path o:extrusionok="t" o:connecttype="none"></path><lock v:ext="edit" text="t"></lock></font></font></shape><rect id="_x0000_s1028" style="LEFT: 2526px; WIDTH: 7200px; POSITION: absolute; TOP: 7642px; HEIGHT: 408px" fillcolor="#eaeaea" strokecolor="#eaeaea"><textbox style="mso-next-textbox: #_x0000_s1028"><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 14pt"><span lang="EN-US" style="FONT-SIZE: 9pt"><font face="Times New Roman">SHGetSpecialFolderPath(HWND hwndOwner, LPTSTR lpszPath, int nFolder, BOOL fCreate)<p></p></font></span></p> </div> </td> </tr></tbody></table></textbox></rect><wrap type="none"></wrap><anchorlock></anchorlock></group>
表11-4列出了SHGetSpecialFolderPath函数的参数。
表11-4:SHGetSpecialFolderPath参数
参数 |
描述 |
hwndOwner |
指定窗口句柄。 |
lpszPath |
标识接收系统文件夹路径的缓冲器地址。 |
nFolder |
指定系统文件夹。 |
fCreate |
标识如果文件夹已经不存在,则创建。 |
SHGetSpecialFolderPath函数所需要的nFolder参数,实际上是一个32位的整数CSIDL值。表11-5列出了nFolder参数可选的数值。
表11-5:系统文件夹的CSIDL值
号码 |
文件夹 |
0 |
Desktop—\My Documents |
2 |
Programs—\Windows\”开始”菜单\程序 |
5 |
Personal—\My Documents |
6 |
Favorites—\Windows\收藏夹 |
7 |
StartUp—\Windows\启动 |
11 |
StartMenu—\Windows\”开始”菜单 |
14 |
Fonts—\Windows\Fonts |
在表11-5中,Personal、StartMenu、Programs和StartUp是最常使用的。Personal文件夹用于存储用户数据。在Pocket PC上对应\My Documents。
Programs文件夹指定储存Pocket PC应用程序的位置。在Pocket PC上对应\Windows\“开始”菜单\程序。通过“开始”菜单的“程序”菜单项访问该文件夹下的Pocket PC应用程序,如图11-2所示。
<shape id="_x0000_i1026" style="WIDTH: 155.25pt; HEIGHT: 207pt" type="#_x0000_t75"><imagedata o:title="" src="file:///D:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image002.png"><font face="Times New Roman" size="3"></font></imagedata></shape>
图11-2:Pocket PC的“开始”菜单下的“程序”菜单项
图11-3显示Pocket PC程序文件夹的内容。
<shape id="_x0000_i1027" style="WIDTH: 155.25pt; HEIGHT: 207pt" type="#_x0000_t75"><imagedata o:title="" src="file:///D:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image004.png"><font face="Times New Roman" size="3"></font></imagedata></shape>
图11-3:Pocket PC 程序文件夹
能够在程序文件夹里创建子文件夹。子文件夹可以从逻辑上分组管理某个公司的所有Pocket PC应用程序。
StartUp文件夹标识用于存储在Pocket PC启动时自动启动的应用程序。在Pocket PC上对应\Windows\Startup文件夹。
StartMenu文件夹指定在“开始”菜单里显示的应用程序菜单项。在Pocket PC 上对应\Windows\“开始”菜单。可以在该文件夹里放置应用程序快捷方式或者应用程序。
图11-4展示“开始”菜单文件夹的内容,其相应的“开始”菜单如图11-2所示。
<shape id="_x0000_i1028" style="WIDTH: 155.25pt; HEIGHT: 207pt" type="#_x0000_t75"><imagedata o:title="" src="file:///D:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image006.png"><font face="Times New Roman" size="3"></font></imagedata></shape>
图11-4:“开始”菜单文件夹的内容