【问题标题】:Accessing remote folder from win form C#从 Win 表单 C# 访问远程文件夹
【发布时间】:2017-03-31 12:14:37
【问题描述】:

我正在 C# 上开发一个 winform 应用程序,我需要访问一个网络文件夹,但我得到登录用户密码异常。如何通过应用程序提供用户凭据?

double length = ((Directory.GetFiles("\\192.168.50.107\Destination", "*", SearchOption.AllDirectories).Sum(t => (new FileInfo(t).Length)) / 1024) / 1024) / 1024;

【问题讨论】:

标签: c# winforms shared-directory


【解决方案1】:

试试这个

using (new NetworkConnection(@"\\192.168.50.107\Destination", readCredentials))
using (new NetworkConnection(@"\\192.168.50.107\Destination", writeCredentials)) {
   double length = ((Directory.GetFiles("\\192.168.50.107\Destination", "*",    SearchOption.AllDirectories).Sum(t => (new FileInfo(t).Length)) / 1024) / 1024) /   1024;
}

字体:How to provide user name and password when connecting to a network share

【讨论】:

  • 在这种情况下可能不需要 writecredentials
  • @Gabriel Bernardone 我在link 的帮助下尝试了您的代码,但它给出了错误..“找不到网络名称”
【解决方案2】:
 private void ConnectToNetwork()
    {
        NetworkCredential theNetworkCredential = new NetworkCredential(@"UserName", "Password");
        CredentialCache theNetCache = new CredentialCache();
        theNetCache.Add(new Uri(@"\\NAS"), "Basic", theNetworkCredential);
    }

【讨论】:

  • 在尝试访问网络上的文件之前调用此方法。
  • 我在为我的项目执行此操作时注意到,当我使用 IP 地址时,网络凭据不喜欢。所以我改用 IP 的名称,它对我有用。
  • 我尝试了两种方式.. 使用 IP 和服务器名称,但仍然找不到错误路径.. theNetCache.Add(new Uri(@"\\192.168.50.107"), "Basic", theNetworkCredential);
  • 也许您需要检查您尝试登录的用户的网络凭据。你应该有读写权限
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-22
  • 2019-11-17
  • 2016-04-24
相关资源
最近更新 更多