我在网络驱动器上共享的文件夹中有一堆文件。我正在尝试将这些文件存入我的代码。但它给出了一个错误:
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文档的文件夹的编号。
答案 0 :(得分:1)
在asp.net中,您无法直接访问网络文件夹,因为asp.net在匿名用户帐户下运行,该帐户无权访问该位置。
您可以在该共享位置为“所有人”授予权限,并查看其是否正常工作。但是这不可取。
Alternativly在访问网络位置时,您可能必须在asp.net代码中进行模拟。您必须与有权访问该共享位置的用户进行实施。
答案 1 :(得分:1)
您可能已将共享目录映射为用户,但是您忘记了asp.net在池的帐户下运行,并且您没有将y:\连接到共享目录。
接下来认为你可以做的是直接尝试通过网络共享名称进行连接,例如:\\SharedCom\fulldir\file.xml
答案 2 :(得分:0)
您需要指定ASP.net页面作为具有该文件访问权限的特定用户运行。然后,您需要在impersonation
文件中启用web.config
,以便ASP.net实际以user
的形式访问该文件。
您的Y驱动器是映射的网络驱动器。您需要使用网络 url eg
\\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)
更多参考:
Unable to List File or Directory Contents on ASP.NET Page using Shared Drive
Using file on network via IIS