【发布时间】: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