我正在构建一个Dotnet Core Web应用程序,需要允许Windows-Authenticated用户浏览已连接的虚拟目录,并查看和选择托管在那里的文件。
Dotnet Core应用程序是否有办法访问虚拟目录?除此之外,有没有办法让常规的Dotnet应用程序来做呢?
答案 0 :(得分:3)
可以这样做。我已经在这件事上工作了两个星期,到处寻找答案。我就是这样做的。
您需要在Startup.cs的Configure方法中添加configure app.UseFileServer()
app.UseFileServer(new FileServerOptions
{
PhysicalFileProvider("\\\\virtualPath\\photos\\wait\\"),
RequestPath = new PathString("/AROULETTE"),
EnableDirectoryBrowsing = true
});
这是如何工作的? 设置方式,您可以输入http://localhost:5000/AROULETTE 它将打开浏览器中PhysicalFileProvider中提供的虚拟路径。当然,这不是我真正想要的。
我需要使用C#创建目录并将文件复制到虚拟目录中。 一旦我安装了FileServer,我尝试了类似这样的功能。
if(!Directory.Exists("/AROULETTE/20170814"))
{
Directory.Create("/AROULETTE/20170814")
}
当然,这也不是
var path = Path.Combine("http://localhost:5000/", "AROULETTE/20170814")
if(!Directory.Exists(path)
{
Directory.Create(path)
}
相反,您只需使用文件夹的实际虚拟路径。
if(!Directory.Exists("\\\\virtualPath\\photos\\wait\\20170814"))
{
Directory.Create("\\\\virtualPath\\photos\\wait\\20170814")
}
因此,UseFileServer用于在应用程序和虚拟文件夹之间创建“桥梁”,就像使用ASP.Net 4.5创建虚拟目录一样
希望这可以帮助一些人,因为关于这个主题的大部分答案都不明确。