我无法访问服务器上的文件夹

时间:2015-06-17 10:45:42

标签: c#

我正在尝试访问服务器上的文件夹以获取其中的文件。

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

中      

附加信息:未将对象引用设置为对象的实例。

问题是什么?我该如何解决呢?

3 个答案:

答案 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根目录的相对路径(获取相对路径的绝对路径)。

来自documentation

  

返回与Web服务器上指定虚拟路径对应的物理文件路径。

您无法在桌面应用程序中使用它。问题是你为什么要这样做呢?可以像任何其他路径一样使用UNC路径(但它可能不包含端口):

foreach (string filename in Directory.GetFiles(@"\\108.163.190.98\home\mybizscard\Ads\")))
{
    list.Add(filename);
}

即:如果用户运行该应用程序作为该文件夹的必需权限。