Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

199
Views
IFileProvider que devuelve el 01/01/0001 para la última fecha de modificación de todos los archivos en el proveedor físico

En el inicio, configuré mi IFileProvider en los servicios de configuración de la siguiente manera:

 IFileProvider physicalProvider = new PhysicalFileProvider(Directory.GetParent(env.ContentRootPath).ToString()); services.AddSingleton<IFileProvider>(physicalProvider);

Ahora, cuando voy a usar para encontrar la fecha de última modificación de los archivos en mi controlador, obtengo la fecha 01/01/0001 para todos los archivos. Mi código es el siguiente:

 private readonly IWebHostEnvironment env; private IFileProvider _fileProvider; public IConfiguration Configuration { get; } public MainReviewController(LoginDBContext context, IConfiguration configuration, IWebHostEnvironment env, IFileProvider fileProvider) { _context = context; connectionString = configuration["ConnectionStrings:DBContext"]; this.env = env; _fileProvider = fileProvider; }

Después de usar la inyección de dependencia para usar el proveedor de archivos, uso el siguiente código en mi solicitud de publicación

 var rootPath = Path.Combine(Directory.GetParent(env.ContentRootPath).ToString(), "ARMSFiles"); foreach (var file in mainreviewdocuments) { var filePath = Path.Combine(rootPath, file.DOCUMENT_FULL_PATH); System.Diagnostics.Debug.WriteLine(filePath); System.Diagnostics.Debug.WriteLine(_fileProvider.GetFileInfo(filePath).LastModified); }

¿Alguna idea sobre esto? En mi inicio, también uso la inyección de dependencia para asegurarme de que estoy usando la misma variable env que mi controlador para que los directorios se alineen. Básicamente es una carpeta fuera de mi carpeta raíz, ya que es un poco más segura y la uso para un webdav cuando realmente implemento esto.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Uso el siguiente código y obtengo el valor de LastModified ;

 IDirectoryContents dirContents = _fileProvider.GetDirectoryContents("ARMSFiles"); IFileInfo fileInfo = _fileProvider.GetFileInfo("ARMSFiles/TextFile.txt");

Resultado de la prueba

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Código de prueba:

Consejos: debajo del código solo para prueba, por favor no lo use directamente en su entorno de producción.

1. Método de prueba

 public IActionResult TestFileProvider() { // the static root path, just for test string filePath = @"D:\M***e\F***e\TestCookie\ARMSFiles\TextFile.txt"; IDirectoryContents dirContents = _fileProvider.GetDirectoryContents("ARMSFiles"); IFileInfo fileInfo = _fileProvider.GetFileInfo("ARMSFiles/TextFile.txt"); System.Diagnostics.Debug.WriteLine(filePath); System.Diagnostics.Debug.WriteLine(fileInfo.LastModified); return Ok(fileInfo.LastModified); }

2. Método ConfigureServices

 public void ConfigureServices(IServiceCollection services) { //IFileProvider physicalProvider = new PhysicalFileProvider(Directory.GetParent(env.ContentRootPath).ToString()); var physicalProvider = _env.ContentRootFileProvider; var embeddedProvider = new EmbeddedFileProvider(Assembly.GetEntryAssembly()); var compositeProvider = new CompositeFileProvider(physicalProvider, embeddedProvider); services.AddSingleton<IFileProvider>(compositeProvider); ... services.AddControllersWithViews(); }

3. Método de configuración

 app.UseStaticFiles(); app.UseStaticFiles(new StaticFileOptions { FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory(), "ARMSFiles")), RequestPath = "/ARMSFiles" });
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!