首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 软件相关 > NETCF开发之文件与目录(6)
【标  题】:NETCF开发之文件与目录(6)
【关键字】:NETCF
【来  源】:http://blog.csdn.net/yanyouning/archive/2006/07/16/928251.aspx

NETCF开发之文件与目录(6)

获得系统文件夹信息

.NET Compact Framework应用程序中调用SHGetSpecialFolderPath函数比较麻烦,下面就介绍该函数的使用方法。为了让SHGetSpecialFolderPath函数更加容易使用,可以建立一个模块,在模块中加入常用该函数的声明,然后在开发Pocket PC应用程序时使用。

调用SHGetSpecialFolderPath函数首先要为nFolder参数定义CSIDL值。清单11-1给出了CSIDL值的声明。

 

清单11-1nFolder参数的可选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-2SHGetSpecialFolderPath函数声明

<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-3GetSpecialFolderPath封装函数

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函数的调用。以下是接收PersonalProgramsStart MenuStartup系统文件夹的示例。

 

得到Personal系统文件夹

GetPersonalFolder函数如清单11-4所示,直接传递PERSONAL数值给GetSpecialFolderPath函数,返回Personal系统文件夹路径。

 

清单11-4GetPersonalFolder函数

Public Function GetPersonalFolder() As String

' 返回 \My Documents.

Return GetSpecialFolderPath(ceFolders.PERSONAL)

End Function

 

 

得到Programs系统文件夹

GetProgramFolder函数如清单11-5所示,直接传递PROGRAMS数值给GetSpecialFolderPath函数,返回Programs系统文件夹路径。

 

清单11-5GetProgramFolder函数

Public Function GetProgramsFolder() As String

' 返回 \Windows\Start Menu\Programs.

Return GetSpecialFolderPath(ceFolders. PROGRAMS)

End Function

 

 

获得Start Menu 系统文件夹

GetStartMenuFolder函数如清单11-6所示,直接传递STARTMENU数值给GetSpecialFolderPath函数,返回StartMenu系统文件夹路径。

 

清单11-6GetStartMenuFolder函数

Public Function GetStartMenuFolder() As String

'返回 \Windows\Start Menu.

Return GetSpecialFolderPath(ceFolders. STARTMENU)

End Function

 

 

获得Start up特定系统夹

GetStartupFolder函数如清单11-7所示,直接传递STARTUP数值给GetSpecialFolderPath函数,返回Startup系统文件夹路径。

 

清单11-7GetStartupFolder函数

Public Function GetStartupFolder() As String

'返回 \Windows\Startup.

Return GetSpecialFolderPath(ceFolders. STARTUP)

End Function

 

 
NETCF开发之文件与目录(7):【上一篇】
(原创)CE MAPI实例讲解 --- 设置Message附件(七):【下一篇】
【相关文章】
  • NETCF开发之文件与目录(7)
  • NETCF开发之文件与目录(8)
  • NETCF开发之文件与目录(9)
  • NETCF开发之注册表编程(1)
  • A class to play sound on netcf in CSharp (二)
  • A class to play sound on netcf in CSharp
  • 【随机文章】
  • 浅析php中实现多线程
  • 使用InstallShield制作ASP安装程序(5)
  • 搜索引挚项目演示效果
  • ADO如何取得数据库中表的字段信息之一
  • 2-10英尺屏蔽跳线
  • C语言文件系统应用举例
  • 别人如何将1G硬盘变成120G的
  • 由“SynaCast和聆讯”想到盛大的“区域化运营”
  • Win XP红外线连接手机过程实例演示
  • Java的多进程运行模式分析
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.