IT技术学习网
IT技术学习网
您的位置: 主页 > 编程技术 > c# >

c# OpenFileDialog改变FileInfo的默认路径

2014-12-27 16:57 来源: cnblogs 阅读:

今天在博客园的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);

第一次弹出的路径为

OpenFileDialog会改变FileInfo的默认路径吗?

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

OpenFileDialog会改变FileInfo的默认路径吗?

如果在声明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时,默认的工作路径均为当前程序所在的路径。

c# OpenFileDialog改变FileInfo的默认路径
转载需注明出处:IT技术学习网 http://www.itjsxx.com/csharp/OpenFileDialog_FileInfo_path.html

评论文章 c# OpenFileDialog改变FileInfo的默认路径
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
IT技术学习网 - 关于我们 - 联系我们 - 版权声明 - 网站地图