科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Vista开发新特性之你的文件存在哪?

Vista开发新特性之你的文件存在哪?

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

自从我们开始使用计算机开始,重新启动就一直是我们用来“解决问题”的最后纺线.

作者:徐磊 来源:天极Yesky软件频道 2007年11月2日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
获取正确的系统路径

  另外一个问题是如何在应用程序中正确的获得这些目录,其实也很简单,使用Environment.GetFolderPath()这个方法,我们可以轻易的获得我们需要的目录:

  

  上面的listView中使用了以下代码进行填充:

  foreach(System.Environment.SpecialFolder folder in Enum.GetValues(typeof(Environment.SpecialFolder)))

  ...{

   ListViewItem folderItem = new ListViewItem(

   new string[]...{folder.ToString(), Environment.GetFolderPath(folder)});

   listView1.Items.Add(folderItem);

  }

  
  这里对Environment.SpecialFolder这个枚举类型进行了遍历,提取出了系统所有的特殊路径。其中值得注意:

  Enviornment.SpecialFolder.ApplicationData:这个值会指向当前用户的AppData中的Roaming目录,这个目录和local的唯一区别就是当你的AD中配置了漫游功能的时候,此目录的内容会被保存在服务器上,并在用户登录其他计算机的时候预先部署。一般是在比较大的企业中为了提供更好的登录环境才使用。

  向下兼容xp文件系统

  说到这里大家肯定有疑问,因为在xp上,用户目录的路径是:

  \Documents and Settings\,而不是\Users\,会觉得有问题,其实Vista在这一点上早就作了准备。

  

  在一个Vista的环境下输入了xp的路径,还是可以正常访问这个xp风格的目录???$?。其实这里Vista借用了一个在unix上使用多年的技术“文件系统链接”来实现这个功能。

  

  当你键入dir /a的时候,出现了很多叫做的东西,其实这些就是“文件系统链接”,Vista使用这些链接把xp风格的目录指向到了正确的Vista路径上。以保证xp的应用程序可以正常访问。如果需要的话,可以使用mklink这个命令来创建需要的链接。

  所以,应用程序如果需要向下兼容的话,仍然应该使用xp风格的路径;当然我这里指的是如果你一定需要写明(hard code)这些路径的话;可能的话,尽量使用Environment来得到正确的路径

  我们可以看到,实际上重启管理器只是定义了一个API用来注册应用程序,和一个系统消息来通知应用程序重启;其他的工作都需要我们的开发人员来自己实现,这可能让我们有点失望,但也是可以理解的,因为系统并不知道那些程序状态是重要的,必须要恢复的;这些应该是开发人员的责任。

  另外还有两点很重要的内容,我们在实现重启管理器的时候需要注意:

  1)重启管理器的API只有在Vista的kernel32.dll中才有,所以如果你的应用程序需要提供支持,那么必须在Vista上进行编译;

  2)为了保证我们的应用程序可以在xp及一下系统上正常运行,一定要在调用RegisterApplicationRestart之前检查系统版本,比如使用Environment.OsVersion或者GetVersionEx API,只有当版本号大于6.0.6000的时候才进行调用,否则会造成崩溃。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章