2012-05-02 98 views
2

我一直试图在远程服务器上使用InitialDirectory,但没有成功。 我所试图做的是:(comboBox1有服务器的名称)OpenFileDialog - InitialDirectory打开远程目录

OpenFileDialog ofLogFile = new OpenFileDialog(); 
ofLogFile.Title = "Log for server: " + comboBox1.text; 
OpenFileDialog.InitialDirectory = "\\\\" + comboBox1.text + "\\c$"; 
ofLogFile.RestoreDirectory = true; 

再有一个,如果检查..

但它不工作。我所得到的是本地机器总监。 的事情是,当我投入InitialDirectory-

OpenFileDialog.InitialDirectory = @"\\server_name\c$"; 

它工作得很好。 ,我试图把另一件事是:

OpenFileDialog.InitialDirectory = "\\\\" + ((System.Data.DataRowView) 
(this.comboBox1.SelectedItem)).ToString + "\\c$"; 

它也不起作用。

我以适当的权限启动程序,所以它不应该是一个问题。 有什么建议吗?

+0

尝试一个非$(隐藏)目录。 – Paparazzi

+0

它不会工作,因为它是一个远程机器。 – user1370184

+0

为什么在一种情况下使用@符号而不在另一种情况下使用@符号?如果你把它放在一个变量中,你会得到什么输出:“\\\\”+ comboBox1.text +“\\ c $”?执行Debug.PrintLline()并查看变量是否有意义。 –

回答

1

如果

ofLogFile.InitialDirectory = @"\\server_name\c$"; 

作品,但

ofLogFile.InitialDirectory = @"\\" + comboBox1.Text + @"\c$"; 

不工作时,答案似乎显而易见:

comboBox1.Text不包含正确的字符串。

确保组合框文本不包含容易丢失的字符,如前导或尾随空格。

+1

非常感谢!我的问题是血腥的空间! – user1370184

+0

通过勾选投票按钮下方的绿色复选标记,接受答案! – banging

2

它不应该是:

ofLogFile.InitialDirectory = "\\\\" + comboBox1.text + "\\c$"; 

+0

是的,我完全错过了。由于其他原因,这是不可编译的,所以我想我假设他们只是在这里输入了错误,而没有在代码中输入。 – Tergiver

+0

尽管当然.text仍然是错误的答案。 – Tergiver

+0

可能还有更多的组合框我不知道,但System.Windows.Forms中的组合有.Text! – banging