0

.net Web アプリのファイル システムのフォルダーにあるファイルのリストを取得しようとしています。アプリを実行すると、ディレクトリが「有効な仮想パスではありません」というエラーが表示されます。WebApp のディレクトリ ({webapp root}\docs\custFiles にあります) にあるファイルを返すにはどうすればよいですか。

try
{
    List<string> custFiles = new List<string>();
    StringBuilder dir = new StringBuilder(@"~\docs\custFiles\");
    dir.Append(custNo + @"\");
    string directory = HttpContext.Current.Server.MapPath(dir.ToString());
    bool IsExists = System.IO.Directory.Exists(directory);
    if (!IsExists)
    {
        string[] fileList = Directory.GetFiles(directory);
        custFiles = (fileList.ToList());
    }

    return custFiles;
}
catch (Exception ex)
{
    throw ex;
}
4

2 に答える 2

0

問題は次の行です。

bool IsExists = System.IO.Directory.Exists(Server.MapPath(directory));

ここでディレクトリ名をすでに作成しているので:

string directory = HttpContext.Current.Server.MapPath(dir.ToString());

Server.MapPath なしで Exists 呼び出しを使用できます。

bool IsExists = System.IO.Directory.Exists(directory);
于 2012-12-20T12:57:16.597 に答える
0

さて、あなたが渡している仮想パスに問題があるようです。代わりにこれを試してください。

String directory=Server.MapPath("~/docs/custFiles");
if(System.IO.Directory.Exists(directory))
{
   //do your coding..
}
于 2012-12-20T13:14:23.997 に答える