Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

202
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda