【问题标题】:Set a network shared folder as InitialDirectory in an OpenFileDialog form在 OpenFileDialog 表单中将网络共享文件夹设置为 InitialDirectory
【发布时间】:2021-01-20 15:06:55
【问题描述】:

我正在尝试将共享网络文件夹设置为 OpenFileDialog 表单中的初始目录。对于我的工作来说,这是一个仅供内部使用的应用程序,所以这样做是安全的,它会为我们节省大量时间。

我正在尝试的代码是这样的,我可以毫无问题地设置任何本地文件夹(“C:/...”),但是当我尝试设置我们的网络共享文件夹的路径时,它没有效果并且表单打开最后一个工作目录。

所有机器都使用 Windows 10 企业版,在同一个网络中,我使用的路径写入正确,带有共享文件夹的机器已打开电源,我可以使用该路径从文件资源管理器正常访问,没有问题.

// The OpenFileDialog control is named ofdFile in my .Designer
this.ofdFile.Title = "File " + formato.nombre;
this.ofdFile.Filter = "CSV Files | *.csv";
this.ofdFile.FileName = string.Empty;
this.ofdFile.InitialDirectory = 
    @"\\pc_name\sub_folder_1\sub_folder_2"; 
    // Also tried with the local IP, double '/', no @, and all kind of stuff...

if (ofdFile.ShowDialog() != DialogResult.Cancel)
   string myFilePath = this.ofdFile.FileName;
   // ...

【问题讨论】:

  • 用户是否有权访问网络文件夹?用户 PC 甚至可以从他们的机器上看到该文件夹​​(防火墙、同一网络等)吗?
  • 是的,正如我在上一段中所说的(为了更好地阅读,我将该段移到代码示例上)
  • Related。如果路径错误,则会发生此行为(打开最后一个工作目录)。你不知何故在@"\\pc_name\sub_folder_1\sub_folder_2" 中犯了一个错误。也许使用OpenFileDialog 打开该文件夹并使用调试器检查它是哪个路径?
  • OpenFileDialog 对 UNC 路径没有问题,前提是该路径可访问且凭据允许。检查访问子路径所需的凭据。尝试设置对Everyone 的完全访问权限以进行测试。
  • 应用程序运行的凭据无权访问网络驱动器。如果您有域,则可以轻松模拟,否则可能会有类似的模拟非域帐户。设置像@jimi state 这样的每个人的访问权限也可能会解决这个问题。

标签: c# winforms path openfiledialog shared-directory


【解决方案1】:

上面的代码是正确的,现在可以工作了。不知道为什么它在第一次测试中不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多