zoukankan      html  css  js  c++  java
  • OpenFileDialog会改变FileInfo的默认路径吗?

    今天在博客园的QQ群上有人发现了这样一个问题,即用FileInfo fi = new FileInfo(path)默认的fi.DirectoryName为当前应用程序所在目录,但如果用OpenFileDialog打开某文件的话,再次fi = new FileInfo(path),其fi.DirectoryName变为OpenFileDialog所打开的文件所在的路径。

    例如:

    FileInfo fi = new FileInfo("test.txt");
    MessageBox.Show(fi.DirectoryName);
    openFileDialog1.ShowDialog();
    fi = new FileInfo("test.txt");
    MessageBox.Show(fi.DirectoryName);

    第一次弹出的路径为

    1

    然后弹出OpenFileDialog窗口,打开其他路径中的一个文件,弹出的路径为

    2

    如果在声明FileInfo时使用绝对路径,则不会出现这样的问题。

    是不是用相对路径声明FileInfo时,会产生一个默认路径,而OpenFileDialog改变了这个默认路径呢?

    答案是肯定的。FileDialog控件提供了一个RestoreDirectory属性,用来指示对话框在关闭前是否还原当前目录。代码如下:

    FileInfo fi = new FileInfo("test.txt");
    MessageBox.Show(fi.DirectoryName);
    openFileDialog1.RestoreDirectory = true;
    openFileDialog1.ShowDialog();
    fi = new FileInfo("test.txt");
    MessageBox.Show(fi.DirectoryName);

    这样,第二次弹出的对话框就与第一次相同了。

    此外,即使设置了FileDialog控件的InitialDerectory,只要RestoreDirectory设置为true,用相对路径初始化FileInfo时,默认的工作路径均为当前程序所在的路径。

  • 相关阅读:
    ssh框架整合之登录以及增删改查
    jsp+servlet实现模糊查询和分页效果
    面向对象高级部分
    个人第二次作业:熟悉使用工具
    个人第1次作业:准备与阅读
    如何计算团队成员贡献分
    Jira软件使用体验报告
    软件测试第四组第一周作业第三天
    软件测试第四组第一周作业第二天
    软件测试第四组第一周作业第一天
  • 原文地址:https://www.cnblogs.com/kirinboy/p/1341210.html
Copyright © 2011-2022 走看看