7 years C/C++/C# programing, focus on embedded and mobile device development.

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  72 随笔 :: 1 文章 :: 132 评论 :: 5 引用
方法1:
Directory.GetCurrentDirectory()。
这个方法只能在.NET的完整版中使用,NETCF中不支持该功能,调用时会引发异常。

方法2:
System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase)。
这个方法是MSDN中给出的针对NETCF平台的,当在PC的NET完整版中获取到的路径中测试时,发现最终的路径中带有file:前缀,如file:\c:\debug,一般情况下我们并不需要这个前缀,可以手动将其去掉。

方法3:
System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName).
该方法也是针对NETCF给出的解决方案,当在PC的NET完整版测试中可以获取到一致的结果。

小结:
如果考虑到代码在PC和PDA上的兼容性,则建议使用第三种方法。第一种方法是万万不行的,而且第一种方式获取到的路径也并不一定就是真正的应用程序所在的路径。
posted on 2007-01-18 16:49 woaiusd 阅读(1374) 评论(2) 编辑 收藏

评论

#1楼 2007-01-18 18:00 Icebird      
我都是这样取路径的,没有用到Assembly
Application.StartupPath
 回复 引用 查看   

#2楼[楼主] 2007-01-18 18:02 swnuwangyun      
Application.StartupPath 在NETCF中不支持
 回复 引用 查看