C#winforms上的folderbrowserdialog
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#winforms上的folderbrowserdialog,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2343字,纯文字阅读大概需要4分钟。
内容图文
![C#winforms上的folderbrowserdialog](/upload/InfoBanner/zyjiaocheng/671/4eccb4375ca44eabb7c5515c067eb464.jpg)
我在winform中使用folderBrowserDialog.
我需要默认或初始路径作为网络位置.
例如:
folderBrowserDialog1.SelectedPath = @"\\server1\foo\bar\";
这是行不通的.我的系统在正确的网络上,并且能够通过浏览器访问目录并运行命令.
这是非功能吗?还是有解决方法?
如果有人可以引导我,我将不胜感激!
谢谢,
伊瓦
解决方法:
以我的经验,.NET始终因UNC路径而失败.有时它起作用,有时却不起作用.我敢肯定有一个很好的解释,但是在很早的时候,我搜索了并且没有找到答案.
与其解决这个问题,不如说我只是采取了这样的策略:最好自己映射一个驱动器,然后在完成代码后断开连接. (如果找到答案,我会很想知道为什么会这样,但是由于我有一个可行的解决方案,因此我不太在意自己进行研究.)它对我们100%的时间都有效,并且很容易.我创建了一个用于执行此操作的类,因为这是我们商店中的常见任务.
我不知道您是否对此想法持开放态度,但是如果您有兴趣并且还没有代码,我们的例程将粘贴在下面.检查打开的驱动器号,然后映射它,然后在完成后断开连接,这将是相当简单的.
public static class NetworkDrives
{
public static bool MapDrive(string DriveLetter, string Path, string Username, string Password)
{
bool ReturnValue = false;
if(System.IO.Directory.Exists(DriveLetter + ":\\"))
{
DisconnectDrive(DriveLetter);
}
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "net.exe";
p.StartInfo.Arguments = " use " + DriveLetter + ": " + Path + " " + Password + " /user:" + Username;
p.Start();
p.WaitForExit();
string ErrorMessage = p.StandardError.ReadToEnd();
string OuputMessage = p.StandardOutput.ReadToEnd();
if (ErrorMessage.Length > 0)
{
throw new Exception("Error:" + ErrorMessage);
}
else
{
ReturnValue = true;
}
return ReturnValue;
}
public static bool DisconnectDrive(string DriveLetter)
{
bool ReturnValue = false;
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "net.exe";
p.StartInfo.Arguments = " use " + DriveLetter + ": /DELETE";
p.Start();
p.WaitForExit();
string ErrorMessage = p.StandardError.ReadToEnd();
string OuputMessage = p.StandardOutput.ReadToEnd();
if (ErrorMessage.Length > 0)
{
throw new Exception("Error:" + ErrorMessage);
}
else
{
ReturnValue = true;
}
return ReturnValue;
}
}
内容总结
以上是互联网集市为您收集整理的C#winforms上的folderbrowserdialog全部内容,希望文章能够帮你解决C#winforms上的folderbrowserdialog所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。