ASP.NET 文件操作
最后修改于 2025 年 4 月 3 日
在本文中,我们将使用 File 类在 ASP.NET 8 中探索文件操作。System.IO.File 类提供了用于文件创建、复制、删除和其他操作的静态方法。
ASP.NET 是一个用于构建现代 Web 应用程序的跨平台框架。文件操作对于处理上传、下载和数据存储至关重要。
基本定义
.NET 中的 File 类提供了用于文件操作的静态方法。它属于 System.IO 命名空间,并以平台无关的方式与文件系统进行交互。
文件操作包括创建、复制、移动、删除以及读/写文件。该类还提供了用于检查文件存在性及属性的方法。
在 ASP.NET 中,文件操作通常用于处理文件上传、提供下载、日志记录和配置。请始终妥善处理文件操作中的错误。
ASP.NET 文件示例
以下示例演示了 ASP.NET Web API 中的各种文件操作。
var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); var app = builder.Build(); app.MapControllers(); app.Run();
这设置了一个基本的 ASP.NET 应用程序,并支持控制器。MapControllers
方法为控制器启用属性路由。
using Microsoft.AspNetCore.Mvc; using System.IO; using System.Text; [ApiController] [Route("api/[controller]")] public class FileController : ControllerBase { private readonly string _basePath = Path.Combine(Directory.GetCurrentDirectory(), "Files"); [HttpPost("upload")] public async Task<IActionResult> UploadFile(IFormFile file) { if (file == null || file.Length == 0) return BadRequest("No file uploaded"); Directory.CreateDirectory(_basePath); var filePath = Path.Combine(_basePath, file.FileName); using (var stream = new FileStream(filePath, FileMode.Create)) { await file.CopyToAsync(stream); } return Ok(new { filePath, file.Length }); } [HttpGet("download/{fileName}")] public IActionResult DownloadFile(string fileName) { var filePath = Path.Combine(_basePath, fileName); if (!System.IO.File.Exists(filePath)) return NotFound(); var fileStream = System.IO.File.OpenRead(filePath); return File(fileStream, "application/octet-stream", fileName); } [HttpGet("info/{fileName}")] public IActionResult GetFileInfo(string fileName) { var filePath = Path.Combine(_basePath, fileName); if (!System.IO.File.Exists(filePath)) return NotFound(); var fileInfo = new FileInfo(filePath); return Ok(new { fileName, fileInfo.Length, fileInfo.CreationTime, fileInfo.LastAccessTime }); } [HttpDelete("delete/{fileName}")] public IActionResult DeleteFile(string fileName) { var filePath = Path.Combine(_basePath, fileName); if (!System.IO.File.Exists(filePath)) return NotFound(); System.IO.File.Delete(filePath); return NoContent(); } }
此控制器演示了四种文件操作:上传、下载、获取信息和删除。_basePath
字段存储用于文件存储的目录。
UploadFile
方法使用 IFormFile
处理文件上传。如果 Files 目录不存在,它会创建该目录并保存上传的文件。
DownloadFile
方法从磁盘读取文件并将其作为下载返回。File
辅助方法创建适当的响应。
GetFileInfo
方法使用 FileInfo
检索文件元数据。DeleteFile
方法演示了带正确存在性检查的文件删除。
所有方法都包含适当的错误处理并返回相应的 HTTP 状态码。该示例同时展示了同步和异步文件操作。
来源
在本文中,我们探索了 ASP.NET 8 中的文件操作。File 类提供了强大的方法,可用于以跨平台的方式处理文件。