通过后面Asp.net代码访问虚拟目录文件夹(Access Virtual Directory fo

2019-08-17 10:25发布

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

  • ASP.Net网站名称:SuperImages
  • 物理文件夹:C:\图片
  • 虚拟目录文件夹:allimages(在同一水平的App_Data,脚本,属性文件夹)

我试图访问和此文件夹中做的项目数的计数,然后在网页上显示它们。

我应该怎么办呢?

提前致谢!

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

更新:从下面的帖子,似乎会使用Server.Mappath给我正确的物理路径。 然而,在我看来,我得到错误的物理路径。 原因应该是我正在“调试”模式。

因此,任何想法如何,我可以正确而在调试模式下运行确保点使用Server.Mappath?

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

解决方案:

问题是,在调试模式下,我用的是VS开发服务器,而不是我的IIS的本地。 我重新创建了一个虚拟目录为我在本地IIS应用程序。 重新创造了“allimages”文件夹中其他虚拟目录,在这个新创建的应用程序,它解决了这个问题。

Answer 1:

你可以这样来做:

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

然后,你可以按照以下这个文件夹中得到的文件:

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

和对文件的塔数,你可以简单地做阵列计数。



Answer 2:

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;


Answer 3:

你可以在你从一个正常的应用程序访问它以同样的方式访问它。 I,D使用目录类获得的项目数。 只要确保你有足够的权限。

Directory.EnumerateFiles(myPath).Length;


文章来源: Access Virtual Directory folder through code behind Asp.net