如何将文件写入.NET Core中的项目文件夹?

我有一个Web API项目,该项目从一些外部API调用中获取数据。现在,我想将返回的数据作为json写入文件,然后将该文件放在项目的文件夹中,以便可以读取该数据以用于其他调用。我必须将它们写入文件,而不是将信息存储在内存中。

我已经看到了一些使用System.IO写入文件的示例,但是它们都引用将文件写入项目外部的本地文件系统中。

最好的方法是什么?

我正在使用.NET Core 3.1。

评论
  • 一夜七次郎
    一夜七次郎 回复
    [HttpPost, DisableRequestSizeLimit]
    public IActionResult Upload()
    {
    try
    {
        var file = Request.Form.Files[0];
        var folderName = Path.Combine("Resources", "FolderName");
        var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);
    
        if (file.Length > 0)
        {
            var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
            var fullPath = Path.Combine(pathToSave, fileName);
            var dbPath = Path.Combine(folderName, fileName);
    
            using (var stream = new FileStream(fullPath, FileMode.Create))
            {
                file.CopyTo(stream);
            }
    
            return Ok(new { dbPath });
        }
        else
        {
            return BadRequest();
        }
    }
    catch (Exception ex)
    {
        return StatusCode(500, $"Internal server error: {ex}");
    }
    }
    

    You also need to confiruge Startup.cs and create Folders for your files in your project

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseStaticFiles();
            app.UseStaticFiles(new StaticFileOptions()
            {
                FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"Resources")),
                RequestPath = new PathString("/Resources")
            });
    
        }
    

    You can read full article here