Quiero leer propiedades extendidas como Product Version , Author , etc. de un archivo usando .Net Core .
Había clases como FileVersionInfo que solían proporcionar información de la versión, objeto Shell para leer más sobre el archivo, etc.
Ahora, ya no encuentro tales clases. ¿Cómo leo dicha información usando .Net Core ?
FileVersionInfo se puede encontrar fácilmente en NuGet , se ha ubicado en el espacio de nombres System.Diagnostics desde el principio, por lo que solo necesita instalar el paquete:
Install-Package System.Diagnostics.FileVersionInfo y use esta clase como de costumbre, obteniendo la información del archivo de algún IFileProvider , por ejemplo, PhysicalFileProvider :
using System.Diagnostics; var provider = new PhysicalFileProvider(applicationRoot); // the applicationRoot contents var contents = provider.GetDirectoryContents(""); // a file under applicationRoot var fileInfo = provider.GetFileInfo("wwwroot/js/site.js"); // version information var myFileVersionInfo = FileVersionInfo.GetVersionInfo(fileInfo.PhysicalPath); // myFileVersionInfo.ProductVersion is available here Para obtener información sobre el Author , debe usar la clase FileSecurity , que se encuentra en el espacio de nombres System.Security.AccessControl , con el tipo System.Security.Principal.NTAccount :
Install-Package System.Security.AccessControl Install-Package System.Security.Principaldespués de ese uso es similar:
using System.Security.AccessControl; using System.Security.Principal; var fileSecurity = new FileSecurity(fileInfo.PhysicalPath, AccessControlSections.All); // fileSecurity.GetOwner(typeof(NTAccount)) is available here La regla general en este momento es buscar en Google el nombre calificado completo para una clase y agregarle core o nuget , por lo que definitivamente obtendrá el archivo necesario con su nueva ubicación.
probablemente pueda usar File Info Provider en .net core..
IFileProvider provider = new PhysicalFileProvider(applicationRoot); IDirectoryContents contents = provider.GetDirectoryContents(""); // the applicationRoot contents IFileInfo fileInfo = provider.GetFileInfo("wwwroot/js/site.js"); // a file under applicationRoot Iterar a través del objeto fileInfo .
Vea esto para más información:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/file-providers
Espero eso ayude.