我正在尝试访问服务器上的文件夹以获取其中的文件。
foreach (string filename in Directory.GetFiles(System.Web.HttpContext.Current.Server.MapPath(@"\\108.163.190.98:3306\home\mybizscard\Ads\")))
{
list.Add(filename);
}
但我得到了这个例外:
未处理的类型' System.NullReferenceException'发生在WindowsFormsApplication1.exe
中附加信息:未将对象引用设置为对象的实例。
问题是什么?我该如何解决呢?
答案 0 :(得分:0)
你确定你正在给出正确的道路,我认为它应该是
foreach (string filename in Directory.GetFiles(System.Web.HttpContext.Current.Server.MapPath(@"\\108.163.190.98\home\mybizscard\Ads\")))
{
list.Add(filename);
}
答案 1 :(得分:0)
好像你没有初始化你的字符串数组。
var files = new string[];
files = Directory.GetFiles(System.Web.HttpContext.Current.Server.MapPath(@"\\108.163.190.98:3306\home\mybizscard\Ads\"));
foreach (string filename in files)
{
list.Add(filename);
}
答案 2 :(得分:0)
首先,MapPath
并没有按照您的想法行事。它在ASP.NET应用程序中用于映射到Web根目录的相对路径(获取相对路径的绝对路径)。
返回与Web服务器上指定虚拟路径对应的物理文件路径。
您无法在桌面应用程序中使用它。问题是你为什么要这样做呢?可以像任何其他路径一样使用UNC路径(但它可能不包含端口):
foreach (string filename in Directory.GetFiles(@"\\108.163.190.98\home\mybizscard\Ads\")))
{
list.Add(filename);
}
即:如果用户运行该应用程序作为该文件夹的必需权限。