在C#中轻松访问网络驱动器

时间:2015-02-21 18:33:44

标签: c# sql disk network-share

我遇到需要使用C#访问网络驱动器的情况,但在运行我的应用程序的每台计算机上,驱动器号可能会有所不同。

例如: 在我的开发PC上,网络驱动器号看起来像这样 的 M:\工程\ testerdata \ configfile.txt

但是在生产测试台机器上,每台机器上的驱动器号可能会有所不同,具体取决于我们的IT部门如何设置它们。在这些情况下,可能有一些机器使用 G:\ engineering \ testerdata \ configfile.txt ,其他机器使用 L:\ engineering \ testerdata \ configfile .TXT 即可。无论如何,数据将位于文件夹\ engineering \ testerdata \ configfile.txt下的网络驱动器上。

我正在尝试编写一个方法来访问此网络文件夹以读取配置文件。我不必担心凭据,因为它们已经在每台机器上设置。此外,我不想把它作为本地工作目录,因为我必须手动更改大约20台PC上的设置。这是我的方法的样子。

public string DatabaseSelector()
    {
      //This method determines which database to use when reading     configuration data.  If the file does not exist, default to AX.
        string DataBaseToUse = "AX";  //This is the default database
        string DatabasetoUsePath = "\\\\engineering\\testerdata\\configfile.txt";
        StreamReader DBtoUseReader = new StreamReader(DatabasetoUsePath);

        if (File.Exists(DatabasetoUsePath))  // if file exists, read file to determine which database to use.
        {
            DataBaseToUse = DBtoUseReader.ReadToEnd();   // Set to what's in the file.  Will be AX or MACPAC
            if (DataBaseToUse == "MACPAC")  
                return DataBaseToUse;  //Done - using MACPAC
            else
                return "AX";  // regardless of anything else, use AX
        }
       return DataBaseToUse;  // if file doesn't exist, us AX.
    }  // end DatabaseSelector

我总是遇到异常 “未处理的类型' System.IO.IOException'发生在mscorlib.dll中 其他信息:找不到网络名称。“

对于字符串DatabasetoUsePath,我还尝试了 @" \\ engineering \ testerdata \ configfile.txt&#34 ;; " \工程\ testerdata \ configfile.txt&#34 ;; 哪个甚至都不会编译,我收到消息“无法识别的转义序列”。

我认为这很容易实现,因为我在C:驱动器上读取本地文件时做了类似的事情,但是从网络驱动器读取结果比我想象的要困难!我究竟做错了什么?提前谢谢!

2 个答案:

答案 0 :(得分:2)

您需要使用UNC路径:\\fqdn\sharename\PathToFile

答案 1 :(得分:1)

看看映射并使用规范文件(我认为它被称为那样)而不是名称 例如,我有一个映射到I的驱动器,但它确实是

\\DC1\applications\

通常我会通过I: 您可以从资源管理器中获取此信息,它确实在我的情况下显示 我:\真的是\ DC1 \ applications

这意味着如果有这样的事情:我将在工程设计中将其作为\ DC1 \ applications \ engineering

进行处理

要查看映射,请单击“开始”按钮,然后单击“打开Windows资源管理器”。映射显示在计算机节点的左侧。假设你已经有了那些映射。

enter image description here

在此示例中,请参阅Y驱动器映射到

\\Storage\public

C盘是本地盘,D是E,E是DVD,F也是驱动器......