2016-08-20 6 views
0

私のASP.NET Webフォームプロジェクトには「inc」というフォルダがあり、内部に画像を持つ「ドリンク」という別のフォルダがあります。したがって、絶対パスは〜/ inc/drinks /のようなものになります。ASP.NET Webフォーム:プロジェクト/サーバーフォルダ内のファイルをトラバースする方法

私はこの機能を使用して、その正確なフォルダ内のすべてのファイル名を取得しようとしている

:仕事と私は例外を取得していない

private static string[] getImageNames(string imgPath) 
    { 
     string[] names = Directory.GetFiles(imgPath) // <- exception 
            .Select(path => Path.GetFileName(path)) 
            .ToArray(); 

     return names; 
    } 

残念なことに:

は見つかりませんでした。パス 'C:\ Program Files(x86)\ inc \ drinks'の一部です。 説明:現在のWeb要求の実行中に、未処理の例外が発生しました。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。

例外の詳細:System.IO.DirectoryNotFoundException: 'C:\ Program Files(x86)\ inc \ drinks'のパスの一部を見つけることができませんでした。

この時点でのimgPath変数の値は "../inc/wines/"です。これは動作するはずですが、わかるように、プログラムはサーバーファイルを検索せず、自分のPCのファイルシステムをC:ドライブに接続します。 冒頭に "../"の代わりに "〜/"を入れてみましたが、運が悪いです。

提案がありますか? Directory.GetFiles(HttpContext.Current.Server.MapPath(imgPath))

答えて

2

変更はServer.MapPathの

の詳細については this answerを参照してください。
関連する問題