尝试在 C# 中从共享点/网络位置读取文件时出现问题

本文关键字:文件 读取 位置 问题 网络 共享 | 更新日期: 2023-09-27 18:30:40

尝试

使用 c# 从 SharePoint 上的文档库访问文件时出现问题。当我在IE浏览器中打开sharepoint文档库时,URL的格式为"http://intranet.com/Projects/site/Forms/AllItems.aspx"。如果我从 sharepoint 页面使用资源管理器打开库,则会打开一个资源管理器窗口,地址行显示"http://intranet.com/Projects/site",如果我查看属性,我会看到位置"''''intranet.com''DavWWWRoot''Projects''site"。

因此,在我的应用程序中,我想使用以下代码将库中的所有 csv 文件放在一个字符串中:

string storedpath = "''''intranet.com''DavWWWRoot''Projects''site''";
string[] files = Directory.GetFiles(storedpath, "*.csv")
           .Select(path => Path.GetFileName(path))
           .ToArray();

这现在工作正常,但是当我在重新启动后尝试时,我会收到一条错误消息,指出找不到路径。但是,如果我手动打开资源管理器并将"''''intranet.com''DavWWWRoot''Projects''site"粘贴到地址栏中,我可以访问它。在我手动打开它后,我的应用程序能够再次找到它。

一种解决方案可能是添加以下代码以在读取文件之前在资源管理器中打开文件夹:

var pro = new System.Diagnostics.Process();
pro = System.Diagnostics.Process.Start("''''intranet.com''DavWWWRoot''Projects''site''");

但是我不知道如何关闭此窗口。有没有办法关闭这个窗口?还是在后台执行此操作的方法?

尝试在 C# 中从共享点/网络位置读取文件时出现问题

您可以尝试调用 NET 命令,而不是打开资源管理器窗口。这应该连接网络共享,而不会打开任何窗口:

System.Diagnostics.Process.Start(@"c:'windows'system32'net.exe", @"use ''intranet.com'DavWWWRoot'Projects'site");

请注意,您可以通过对字符串使用 @ 前缀来保存双反斜杠。熟悉 Windows 上的 NET 命令可能会有所帮助,该命令在连接网络共享时为您提供了许多选项。