Stream myStream = null;
OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1.FilterIndex = 2; openFileDialog1.RestoreDirectory = true;
Console.WriteLine("Current Directory is {0}", Environment.CurrentDirectory); if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
if ((myStream = openFileDialog1.OpenFile()) != null)
{
using (myStream)
{
// Insert code to read the stream here.
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
} Console.WriteLine("Current Directory is {0}", Environment.CurrentDirectory);
上面的这行代码:openFileDialog1.RestoreDirectory = true; 我就是搞不懂,它的存在到
底起什么作用? Console.WriteLine("Current Directory is {0}", Environment.CurrentDirectory);每次输出的都是
相同的文件夹啊。MSDN : .RestoreDirectory 获取或设置一个值,该值指示对话框在关闭前是否还原当前目录。假设用户在搜索文件的过程中更改了目录,那么,如果对话框会将当前目录还原为初始值,则值为 true;反之搜索文件的过程中如何理解?,谁能举个例子。
有了这一句,在打开一个文件后,Environment.CurrentDirectory值仍和之前的一样,不会变化;
如果真是这样,我也就不会提问了。
我这样:openFileDialog1.RestoreDirectory =false ;
但是每次输出的当前文件夹路径都是相同的!?WHY
OpenFileDialog openFileDialog1 = new OpenFileDialog();
这句中的openFileDialog1如果是方法中的局部变量,那就体现不出RestoreDirectory 的作用了。
Console.WriteLine(Environment.CurrentDirectory);
//ofd.InitialDirectory = "c:\\"; ofd.RestoreDirectory = false; if (ofd.ShowDialog() == DialogResult.OK)
{
this.Text = ofd.FileName;
Console.WriteLine(Environment.CurrentDirectory);
}
输出的路径都是相同的啊,不信你们试,我的是VS2010RtmRel 的。
ofd.RestoreDirectory = true;时,两次输出路径相同。
嗯,我VS2008是,使用7楼的代码,当RestoreDirectory设为false 时,输出的路径不同反之相同。
但在现在的VS2010中输出的路径不管怎样设置都是相同的了。不解啊。
但在现在的VS2010中输出的路径不管怎样设置.RestoreDirectory 都是相同的了 Why?
textBox1.Multiline = true;
textBox1.ScrollBars = ScrollBars.None;
textBox1.Text = "ab\ncde\nfg";
//输出为 abcdefg ,为什么没换行呢?
textBox1.Multiline = true;
textBox1.ScrollBars = ScrollBars.None; textBox1.Text = "where are you\njack ?";
//使用了\n,为什么没换行呢?
textBox1.ScrollBars = ScrollBars.None;
textBox1.Text = "ab\r\ncde\r\nfg";
回车换行符号是\r\n
嗯,谢谢,不过我在想:
那textBox1.Text = "ab\rcde\rfg";和
textBox1.Text = "ab\ncde\nfg";
在这里为什么不起作用呢?我总感觉回车\r,和换行\n和回车换行\r\n应是一样的效果
SaveFileDialog 和 OpenFileDialog 的 RestoreDiretory 属性表征失效。实际调试中发现,RestoreDirectory 属性仍然可以影响 System.Environment.CurrentDirectory 的值,但是该值无法反应到对话框中,亦即是说对话框读取的路径不是 System.Environment.CurrentDirectory 。所以初步判断应该是 .Net 4.0 版本的 FileDialog 基类存在 BUG 。及其可能的原因是 FileDialog 的路径保存机制发生了改变,但 RestoreDirectory 的控制代码没有一同更新。此问题有待进一步研究。
例如:
http://www.cnblogs.com/xianglong/archive/2011/08/26/RestoreDirectory-CurrentDirectory-SaveFileDialog.html
以及
http://topic.csdn.net/u/20080722/00/7AB47ABA-986E-4364-A187-4C201E466BA9.html