我当前正在尝试显示目录中的文件。为此,我使用 IFileProvider/ContentRootFileProvider 及其方法 GetDirectoryContents(字符串路径)。它在我的本地机器上与 Visual Studio 中的 IIS 一起工作,但在 Azure 上却不起作用。如果我在本地执行它,它会显示每个文件及其详细信息。但当我尝试在 Azure 上运行它时,我只能得到 < 28MB 的文件。经过一番谷歌搜索后,我尝试在 Azure 上编辑 web.config 并将其包含到我的项目中。遗憾的是,这两种情况都不起作用,我仍然只得到小于 28MB 的文件。
我对 web.config 的编辑:
<security>
<requestFiltering>
<!--400 MByte-->
<requestLimits maxAllowedContentLength="419430400" />
</requestFiltering>
</security>
任何帮助将不胜感激。
最佳答案
更新
Krishg's 提供的代码有效且值得推荐。
我提供的解决方案(文件分类)有时会忽略大文件。这个现象很奇怪。
new PhysicalFileProvider(Directory.GetCurrentDirectory(), ExclusionFilters.None);
隐私
我仔细阅读了您的描述并亲自测试过。这个问题很有趣。
我尝试创建一个webapp并选择linux
平台,一切正常。 (如果可以,请选择此计划来部署您的程序)。
在windows
平台下创建,要遍历的文件夹下,如果包含图片文件
(格式:jpg
, gif
、png
)、.csproj
文件,超过28M的文件将无法识别。
我使用 kudu 上传大文件。当小于一定值时,就可以看到。上传后就消失了,很奇怪。
解决方案和建议:
1。使用linux平台重新部署webapp
2。对项目中的文件进行分类。遍历时分配到对应的文件夹。
var contents = _fileProvider.GetDirectoryContents("/zip");
测试结果。
3.您可以在门户上提出支持请求并获得官方答复。如果确实是bug,你提交问题后,官方会处理并帮助webapp改进。
关于c# - GetDirectoryContents 方法不显示超过 28MB 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63994097/