簡體   English   中英

在 NetCore 啟動時在 wwwroot 中創建文件夾

[英]Create folders in wwwroot on startup in NetCore

有沒有辦法在應用程序啟動時在wwwroot中創建文件夾? 也許在startup.cs class?

我知道如何在 controller 操作方法中的wwwroot中創建文件夾。 我不想要這個。

這就是我想要的:

  • 我有一個對象列表: List<Organization> Organizations
  • foreach (Organization in Organization)我想要一個在wwwroot文件夾中創建的帶有Organization.Name的文件夾
  • 我希望在應用程序啟動時創建它

在此先感謝您的幫助

你可以使用以下

但請注意,您的 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 class?

為了達到這個要求,您可以嘗試將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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM