在NetCore启动时在wwwroot中创建文件夹



是否有办法在应用程序启动时在wwwroot中创建文件夹?也许在startup.cs课上?

我知道如何在控制器动作方法中创建wwwroot文件夹。我不想要这个

这是我想要的:

  • 我有一个对象列表:List<Organization> Organizations
  • foreach (Organization in Organization)我想要一个文件夹与Organization.Name创建在wwwroot文件夹
  • 我希望它在应用程序启动时创建

提前感谢您的帮助

您可以使用以下

但是请注意在foreach中有重复的变量名

var rootFolder=Path.Combine(Directory.GetCurrentDirectory(),"wwwroot");
foreach (org in Organizations){
var orgFolderPath=Path.Combine(rootfolder,org.Name);
if(!Directory.Exists(orgFolderPath){
Directory.CreateDirectory(orgFolderPath);
}
}

是否有办法在wwwroot中创建文件夹,当应用程序启动?也许是在startup.cs课程上?

为了实现这个要求,你可以尝试将IHostApplicationLifetime注入到Configure()方法中,并为ApplicationStarted写回调,然后你可以基于List<Organization> Organizations创建文件夹。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IHostApplicationLifetime lifetime)
{
//...
//your code here
lifetime.ApplicationStarted.Register(OnApplicationStartedAsync(env).Wait);
//...
}
private async Task<Action> OnApplicationStartedAsync(IWebHostEnvironment env)
{
foreach (var org in Organizations)
{
var path = Path.Combine(env.WebRootPath, $"{org.Name}");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
}

return null;
}

相关内容

  • 没有找到相关文章

最新更新