我正在尝试从代码隐藏中访问虚拟目录文件夹。
我正在尝试访问并计算此文件夹中的项目数,然后将其显示在网页上。
我该怎么做?
提前致谢!
=============================================== ========================
更新:从下面的帖子中,似乎Server.MapPath会给我正确的物理路径。然而,在我看来,我得到了错误的物理路径。原因应该是我正在运行'调试'模式。
因此,任何想法如何确保Server.MapPath正确指向并在调试模式下运行?
=============================================== =======================
解决方案:
问题是在调试模式下,我使用的是VS Dev Server而不是我的本地IIS。我在本地IIS中为我的应用程序重新创建了一个虚拟目录。在这个新创建的应用程序中为'allimages'文件夹重新创建了另一个虚拟目录,它解决了这个问题。
答案 0 :(得分:4)
你可以这样做:
DirectoryInfo dir= new DirectoryInfo(Server.MapPath("/allimages"));
然后您可以获取此文件夹中的文件,如下所示:
FileInfo[] files = dir.GetFiles(string searchPattern,SearchOption searchOption);
并且对于文件的数量,您可以简单地进行数组计数。
答案 1 :(得分:0)
您可以像从普通应用程序访问它一样访问它。我,使用Directory类来获取项目的计数。只要确保你有足够的权限。
Directory.EnumerateFiles(myPath).Length;
答案 2 :(得分:0)
AS在帖子中建议
File count from a folder
你可以这样。
您可以使用
另见 Directory.GetFiles Method (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;