3

我在网络驱动器上共享的文件夹中有一堆文件。我正在尝试将这些文件访问到我的代码中。但它给出了一个错误:

System.IO.DirectoryNotFoundException 未被用户代码处理

Fname = txtwbs.Text;
DirectoryInfo objDir = new DirectoryInfo("Y:\\");
_xmlpath = objDir + "\\" + Fname + "\\" + Fname + ".xml";
if (File.Exists(_xmlpath ))
{
    reader(_xmlpath);
}

我还使用过:

file = fopen("\\\\10.0.2.20\\smartjobs\\Eto\\"+Fname);   

我能够从我的本地 PC 读取文件,但它只对网络位置给出例外。请让我知道如何从网络共享位置读取文件。

以及如何在 Asp.net Web 应用程序中制作文件夹的树形视图。

目录结构是这样的

\\10.0.2.20\Smartjobs\Eto\

这是父目录 它包含具有 XML 文档的文件夹编号。

4

3 回答 3

1

在 asp.net 中,您无法直接访问网络文件夹,因为 asp.net 在匿名用户帐户下运行,该帐户无权访问该位置。

您可以在该共享位置向“所有人”授予权限,并查看它是否正常工作。然而,这是不可取的。

或者,当访问网络位置时,您可能必须在 asp.net 代码中进行模拟。您将不得不对有权访问该共享位置的用户进行模拟。

于 2012-05-21T12:10:40.013 回答
1

您可能已将共享目录映射为用户,但您忘记了 asp.net 正在池的帐户下运行,并且您没有将 y:\ 与共享目录连接。

接下来认为您可以做的是直接尝试通过网络共享名进行连接,例如:\\SharedCom\fulldir\file.xml

于 2012-05-21T12:11:24.530 回答
0

您需要指定 ASP.net 页面以有权访问该文件的特定用户身份运行。然后,您需要impersonationweb.config文件中启用,以便 ASP.net 以user.

您的 Y 驱动器是映射的网络驱动器。您需要使用网络网址,例如\\server\Smartjobs\Eto\xyz.xml

您可以像在其他任何地方一样指定name文件的名称:network

Dim myStream As IO.FileStream = IO.File.Open("\\myserver\myshare\myfile", IO.FileMode.Open)
Dim myBytes As Byte()
myStream.Read(myBytes, 0, numberOfBytesToRead)

更多参考:
无法使用共享驱动器在 ASP.NET 页面上列出文件或目录内容
通过 IIS 使用网络上的文件

于 2012-05-21T12:09:58.090 回答