今天在博客园的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时使用绝对路径,则不会出现这样的问题。
是不是用相对路径声明FileInfo时,会产生一个默认路径,而OpenFileDialog改变了这个默认路径呢?但是MSDN中并没有类似的说明。
望指教。
OpenFileDialog 默认设置是当对话框退出后将当前路径更改到其选择的路径。如果想恢复原来的工作路径,可以将 RestoreDirectory 这个属性设置为 true 就可以了。
http://msdn.microsoft.com/zh-cn/vsts2008/microsoft.win32.filedialog.restoredirectory.aspx
是这样的,OpenFileDialog.showDialog以后,就会更改默认的路径到当前OpenFileDialog选取的路径
就是这样的.
我以前也遇到过这个问题,但是不知道为什么.不想改默认的路径,也不知道怎么设置.