我试图访问从代码隐藏虚拟目录文件夹。
- ASP.Net网站名称:SuperImages
- 物理文件夹:C:\图片
- 虚拟目录文件夹:allimages(在同一水平的App_Data,脚本,属性文件夹)
我试图访问和此文件夹中做的项目数的计数,然后在网页上显示它们。
我应该怎么办呢?
提前致谢!
================================================== =====================
更新:从下面的帖子,似乎会使用Server.Mappath给我正确的物理路径。 然而,在我看来,我得到错误的物理路径。 原因应该是我正在“调试”模式。
因此,任何想法如何,我可以正确而在调试模式下运行确保点使用Server.Mappath?
================================================== ====================
解决方案:
问题是,在调试模式下,我用的是VS开发服务器,而不是我的IIS的本地。 我重新创建了一个虚拟目录为我在本地IIS应用程序。 重新创造了“allimages”文件夹中其他虚拟目录,在这个新创建的应用程序,它解决了这个问题。
你可以这样来做:
DirectoryInfo dir= new DirectoryInfo(Server.MapPath("/allimages"));
然后,你可以按照以下这个文件夹中得到的文件:
FileInfo[] files = dir.GetFiles(string searchPattern,SearchOption searchOption);
和对文件的塔数,你可以简单地做阵列计数。
AS建议在后
从文件夹中的文件数
你可以去这样。
您可以使用
Directory.GetFiles方法
另见Directory.GetFiles方法(字符串,字符串,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;
你可以在你从一个正常的应用程序访问它以同样的方式访问它。 I,D使用目录类获得的项目数。 只要确保你有足够的权限。
Directory.EnumerateFiles(myPath).Length;