NETCF开发之文件与目录(6)
来源:互联网 发布:淘宝超级会员专享红包 编辑:程序博客网 时间:2024/06/12 00:58
获得系统文件夹信息
在.NET Compact Framework应用程序中调用SHGetSpecialFolderPath函数比较麻烦,下面就介绍该函数的使用方法。为了让SHGetSpecialFolderPath函数更加容易使用,可以建立一个模块,在模块中加入常用该函数的声明,然后在开发Pocket PC应用程序时使用。
调用SHGetSpecialFolderPath函数首先要为nFolder参数定义CSIDL值。清单11-1给出了CSIDL值的声明。
清单11-1:nFolder参数的可选CSIDL值
Public Enum ceFolders As Integer DESKTOP = 0 ' /My Documents PROGRAMS = 2 ' /Windows/”开始”菜单/程序 PERSONAL = 5 ' /My Documents FAVORITES = 6 ' /Windows/Favorites STARTUP = 7 ' /Windows/启动 STARTMENU = &HB ' /Windows/Start Menu FONTS = &H14 ' /Windows/Fonts End Enum
其次是增加如清单11-2所示的SHGetSpecialFolderPath函数声明。该声明需要增加到模型的声明部分。
清单11-2:SHGetSpecialFolderPath函数声明
<System.Runtime.InteropServices.DllImport("coredll.dll")> _ Private Function SHGetSpecialFolderPath( _ ByVal hwndOwner As Integer, _ ByVal lpszPath As String, _ ByVal nFolder As ceFolders, _ ByVal fCreate As Boolean) As Boolean End Function
封装SHGetSpecialFolderPath函数
在.NET Compact Framework应用程序中调用SHGetSpecialFolderPath函数比较麻烦,最好的办法就是对SHGetSpecialFolderPath函数进行封装。这里使用GetSpecialFolderPath函数来进行封装。GetSpecialFolderPath函数直接接收MyCSIDL参数,返回对应的系统文件夹路径。GetSpecialFolderPath函数如清单11-3所示。
清单11-3:GetSpecialFolderPath封装函数
Public Function GetSpecialFolderPath(ByVal MyCSIDL As ceFolders) As String Dim strWorkingPath As String = New String(" "c, 260) Dim intEndOfPath As Integer Try SHGetSpecialFolderPath(0, strWorkingPath, MyCSIDL, False) intEndOfPath = strWorkingPath.IndexOf(Chr(0)) If intEndOfPath > -1 Then strWorkingPath = strWorkingPath.Substring(0, intEndOfPath) End If Catch ex As Exception strWorkingPath = ex.Message End Try Return strWorkingPath End Function
在清单11-3里,首先为返回系统文件夹的路径开辟260个字符的内存缓冲区。当SHGetSpecialFolderPath函数返回的时候,接收的路径存储在字符串的左端,以空字符(ASCII 0)结尾。
GetSpecialFolderPath函数简化了SHGetSpecialFolderPath函数的调用。以下是接收Personal、Programs、Start Menu和Startup系统文件夹的示例。
得到Personal系统文件夹
GetPersonalFolder函数如清单11-4所示,直接传递PERSONAL数值给GetSpecialFolderPath函数,返回Personal系统文件夹路径。
清单11-4:GetPersonalFolder函数
Public Function GetPersonalFolder() As String ' 返回 /My Documents. Return GetSpecialFolderPath(ceFolders.PERSONAL) End Function
得到Programs系统文件夹
GetProgramFolder函数如清单11-5所示,直接传递PROGRAMS数值给GetSpecialFolderPath函数,返回Programs系统文件夹路径。
清单11-5:GetProgramFolder函数
Public Function GetProgramsFolder() As String ' 返回 /Windows/Start Menu/Programs. Return GetSpecialFolderPath(ceFolders. PROGRAMS) End Function
获得Start Menu 系统文件夹
GetStartMenuFolder函数如清单11-6所示,直接传递STARTMENU数值给GetSpecialFolderPath函数,返回StartMenu系统文件夹路径。
清单11-6:GetStartMenuFolder函数
Public Function GetStartMenuFolder() As String '返回 /Windows/Start Menu. Return GetSpecialFolderPath(ceFolders. STARTMENU) End Function
获得Start up特定系统夹
GetStartupFolder函数如清单11-7所示,直接传递STARTUP数值给GetSpecialFolderPath函数,返回Startup系统文件夹路径。
清单11-7:GetStartupFolder函数
Public Function GetStartupFolder() As String '返回 /Windows/Startup. Return GetSpecialFolderPath(ceFolders. STARTUP) End Function
- NETCF开发之文件与目录(6)
- NETCF开发之文件与目录(5)
- NETCF开发之文件与目录(7)
- NETCF开发之文件与目录(8)
- NETCF开发之文件与目录(9)
- NETCF开发之文件和目录(1)
- NETCF开发之文件和目录(2)
- NETCF开发之文件和目录(3)
- NETCF开发之文件和目录(4)
- NETCF开发之文件和目录(2)
- NETCF开发之使用资源文件
- NETCF开发之文件压缩和解压缩
- NETCF开发之注册表编程(1)
- NETCF开发之注册表编程(2)
- NETCF开发之MessageQueue控件
- NETCF开发之Notification控件
- NETCF开发之BindingSource控件
- NETCF开发之用户界面设计
- wincap使用方法、原理;IP Helper使用方法
- PL的六大秘诀
- ADO.Net初识
- 归去来兮
- 发人深思 的图片
- NETCF开发之文件与目录(6)
- 软件企业的运营模式
- 最近看了很多电影,但只记得这么多了
- NETCF开发之文件与目录(7)
- 《写给企业家的经济学》读书笔记 - Part 7
- kernel 2.6.0 编译方法
- 第一篇文章
- ASP.NET安装问题总结
- 天南地北双飞客,老翅几回寒暑!