6

コード ビハインドから仮想ディレクトリ フォルダにアクセスしようとしています。

  • ASP.Net Web サイト名 : SuperImages
  • 物理フォルダー : C:\images
  • 仮想ディレクトリ フォルダー : allimages (App_Data、Scripts、Properties フォルダーと同じレベルにあります)

このフォルダー内のアイテムにアクセスして数を数え、Web ページに表示しようとしています。

どうすればいいですか?

前もって感謝します!

================================================== =====================

更新:以下の投稿から、 Server.MapPath が正しい物理パスを提供するようです。しかし、間違った物理パスを取得しているように思えます。理由は、「デバッグ」モードを実行しているためです。

したがって、デバッグモードで実行中に Server.MapPath が正しくポイントされていることを確認する方法はありますか?

================================================== ====================

解決 :

問題は、デバッグ モードで、ローカル IIS の代わりに VS Dev Server を使用していたことです。ローカル IIS でアプリの仮想ディレクトリを再作成しました。この新しく作成されたアプリの「allimages」フォルダー用に別の仮想ディレクトリを再作成し、問題を解決しました。

4

3 に答える 3

5

次の方法で実行できます。

DirectoryInfo dir= new DirectoryInfo(Server.MapPath("/allimages"));

次に、以下のようにこのフォルダー内のファイルを取得できます。

FileInfo[] files = dir.GetFiles(string searchPattern,SearchOption searchOption);

ファイルの数については、単純に配列の数を数えることができます。

于 2013-03-10T10:03:12.963 に答える
0

投稿で提案されているよう
にフォルダからのファイル数
あなたはこのように行くことができます。

あなたは使用することができます

Directory.GetFilesメソッド

Directory.GetFilesメソッド(String、String、SearchOption)も参照してください。

このオーバーロードで検索オプションを指定できます。

TopDirectoryOnly:現在のディレクトリのみを検索に含めます。

AllDirectories:現在のディレクトリとすべてのサブディレクトリを検索操作に含めます。このオプションには、マウントされたドライブやシンボリックリンクなどの再解析ポイントが検索に含まれます。

// searches current directory and sub directory
int fCount = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories).Length;
// searches current directory
int fCount = Directory.GetFiles(path, "*.*", SearchOption.TopDirectory).Length;

Server.MapPath仮想ディレクトリフォルダに使用する必要があります。

  string dir = Server.MapPath(@"/Content/slideshow/images/image");
  FileInfo[] files;
  int numFiles;
  files = (new System.IO.DirectoryInfo(dir)).GetFiles("filePattern");
  numFiles = files.Length;
于 2013-03-10T10:03:28.030 に答える
0

通常のアプリケーションからアクセスするのと同じ方法でアクセスできます。私は、Directory クラスを使用してアイテムの数を取得します。十分な権限があることを確認してください。

Directory.EnumerateFiles(myPath).Length;
于 2013-03-10T09:58:05.693 に答える