6

我正在尝试从代码隐藏访问虚拟目录文件夹。

  • ASP.Net 网站名称:SuperImages
  • 物理文件夹:C:\images
  • 虚拟目录文件夹:allimages(与 App_Data、Scripts、Properties 文件夹处于同一级别)

我正在尝试访问并计算此文件夹中的项目数,然后将它们显示在网页上。

我该怎么做?

提前致谢!

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

更新:从下面的帖子来看,似乎 Server.MapPath 会给我正确的物理路径。但是,在我看来,我走错了物理路径。原因应该是我正在运行“调试”模式。

因此,知道如何确保 Server.MapPath 正确指向并在调试模式下运行吗?

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

解决方案 :

问题是在调试模式下,我使用的是 VS 开发服务器而不是我的本地 IIS。我在本地 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 类来计算项目的数量。只要确保你有足够的权限。

Directory.EnumerateFiles(myPath).Length;
于 2013-03-10T09:58:05.693 回答
0

正如帖子中建议的
文件夹中的文件计数
您可以这样。

您可以使用

Directory.GetFiles方法

另请参阅Directory.GetFiles 方法(字符串、字符串、搜索选项)

您可以在此重载中指定搜索选项。

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 回答