Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

201
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda