2010-12-17 102 views
0

我是winforms的新手,在我的应用程序中面临一个问题。我试图向用户显示在我的表单上使用SaveFileDialog控件保存文件。但只要用户选择他的目录并保存他的文件,我的下一个使用Directory.getCurrentDirectory()的代码就无法指向我的工作目录。看来SaveFileDialog在这里引起问题。FileSaveDialog改变我当前的工作目录路径

对于如: - 我有这几行代码 -

MessageBox.Show(Directory.GetCurrentDirectory()); // output: C:\TestSamples\TestApp\Bin\Debug 
fdSave.ShowDialog(); // fdSave is SaveFileDialog control which will show to save file 
MessageBox.Show(Directory.GetCurrentDirectory()); //output: C:\Program files\outputDir (This is the path chosen by user to save file in previous saveDialog.) 

对此有任何解决方案,使我当前的工作目录不得到改变,或者我应该保持一个变量来存储我的当前工作目录在使用saveDialog之前?

回答

4

我发现在评论一个可能的答案上Raymond Chen's excellent blog

在类System.Windows.Forms .FileDialog,有一个属性'RestoreDirectory'

+0

是。这只是一个更普遍的例子,“哎呀,我没写的一些代码正在改变工作目录”。使用完整路径。 – 2010-12-17 17:30:26

+0

@Hans Passant,很好的建议。你有没有想过询问OP为什么这不可能?或者甚至将建议作为答案? – 2010-12-17 17:43:31

+0

我认为OP会更满意你的答案。 – 2010-12-17 17:48:26

相关问题