Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Directory.GetFiles工作,Directory.GetDirectories不工作';t在同一目录上_C#_Asp.net_Directory_Getfiles_Getdirectories - Fatal编程技术网

C# Directory.GetFiles工作,Directory.GetDirectories不工作';t在同一目录上

C# Directory.GetFiles工作,Directory.GetDirectories不工作';t在同一目录上,c#,asp.net,directory,getfiles,getdirectories,C#,Asp.net,Directory,Getfiles,Getdirectories,我的web应用程序上有一个简单的文件选择器,它使用Directory.GetFiles和Directory.GetDirectories生成UI。这在我的本地主机上非常有效,但当我将其上传到我的Windows Server 2003主机时,我只能看到文件-在同一目录下,GetFiles可以工作,但GetDirectory不能 代码非常简单-字符串dir由Server.MapPath调用创建,然后: List<string> dirs = Directory.GetDirectorie

我的web应用程序上有一个简单的文件选择器,它使用Directory.GetFiles和Directory.GetDirectories生成UI。这在我的本地主机上非常有效,但当我将其上传到我的Windows Server 2003主机时,我只能看到文件-在同一目录下,GetFiles可以工作,但GetDirectory不能

代码非常简单-字符串dir由Server.MapPath调用创建,然后:

List<string> dirs = Directory.GetDirectories(dir).ToList();
List<string> files = Directory.GetFiles(dir).ToList();

在服务器上,所有站点都位于按其域命名的文件夹中—在本地,它们不是。我=愚蠢。对不起大家

目录是隐藏的吗

它们是实际目录,还是(因为这是一个web服务器)虚拟文件夹


顺便说一句-除非您特别想要一些
列表
功能,否则您最好将它们保留在原始的
字符串[]
数组中。。。事实上,在3.5中,LINQ模糊了
列表的优点,因为
Where(…)
First(…)
等应用于数组。

是否检查了目录是否在您认为的位置?IIS通常会将您放在临时目录中,因此它可能已将您的所有文件复制到此临时文件夹,但没有子目录,因此根本没有子目录。

如果您没有权限,可以强制引发异常:

new FileIOPermission(FileIOPermissionAccess.PathDiscovery | FileIOPermissionAccess.Read,dir).Demand();
new FileIOPermission(FileIOPermissionAccess.PathDiscovery | FileIOPermissionAccess.Read,dir).Demand();