最近有个项目,要读取一个共享文件夹上的文件路劲,记录如下:
1、访问共享文件
在这里我定义了一个方法,SelfFileExist(filesrc,filename),这个方法的主要功能就是查看这个我传入的以filename为文件名的文件是否存在与我的filesrc路径之下,当然filesrc就是我的共享文件路径。格式如: \\10.3.2.113\\test\\test
/// <summary>/// 查找指定路径的共享文件是否存在
/// </summary>
/// <param name="url"></param>
/// <param name="filename"></param>
/// <returns></returns>
private string SelfFileExist(string url,string filename)
{
try
{
DirectoryInfo di = new DirectoryInfo(url);
//找到该目录下的文件
FileInfo[] fis = di.GetFiles();
foreach (FileInfo fi in fis)
{
if (fi.Name.Substring(0,fi.Name.LastIndexOf('.')) == filename)
{
return fi.Name;
}
}
return "";
}
catch(Exception e)
{
return "";
}
}
该方法返回的fi.Name是带有后缀名称的文件名,我这儿只是遍历一下文件路径下的文件而已,直接查看文件存不存在,可以直接传进路径+文件名判断,也就是:
File.Exists(path)以上的访问在本地vs里面运行的时候是可以的(前提是你的电脑能够访问这个共享地址哈)。但是呢,这个程序发布到 IIS 上面就不是那么的尽人意了,经过网上搜索出来了很多的解决方案,在这结合自己的成功经历说明一下。如下:
2、IIS上访问共享文件夹
不知道还有没有变得办法,在这里我使用的是添加虚拟目录的方式实现的。具体如下:
举个例子:两台服务器A,B。A是文件服务器,B是网站所在的服务器,那么在A服务器上设置文件共享是必须的吧,(1)设置的时候咱设置了一个共享的账号密码---->(2)然后呢在应用程序池里面添加刚才设置的账号密码--->(3)添加虚拟目录--->(4)web.config里面设置:
<system.web> <!--<identity impersonate="true"/>--> <identity impersonate="true" userName="您的账号" password="您的密码" /> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web>
这样基本OK了,我也想上传图片,但是公司网不允许上传。。。。。所以在这里有一个网址,里面就是这些操作,对于创建共享文件夹的第2步:
转载请标明出处:.net 访问共享文件夹
文章来源: .net 访问共享文件夹