获取.Net Core中的文件扩展属性

时间:2017-03-18 09:51:09

标签: c# file asp.net-core .net-core

我想使用Product Version从文件中读取Author.Net Core等扩展属性。

有类似FileVersionInfo的类用于提供版本信息,Shell对象用于阅读有关文件的更多信息等。

现在,我再也找不到这样的课了。如何使用.Net Core阅读此类信息?

2 个答案:

答案 0 :(得分:3)

FileVersionInfo可以很容易找到NuGet,它位于。{3}} System.Diagnostics命名空间从一开始就是,所以你只需要安装包:

Install-Package System.Diagnostics.FileVersionInfo

并像往常一样使用此类,getting the file info来自某些IFileProvider,例如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

对于Author信息,您应使用位于FileSecurity命名空间的System.Security.AccessControl类,其类型为System.Security.Principal.NTAccount

Install-Package System.Security.AccessControl
Install-Package System.Security.Principal

之后的用法类似:

using System.Security.AccessControl;
using System.Security.Principal;

var fileSecurity = new FileSecurity(fileInfo.PhysicalPath, AccessControlSections.All);
// fileSecurity.GetOwner(typeof(NTAccount)) is available here

现在的一般规则是google一个课程的完整限定名称并添加corenuget,这样您就可以获得所需的新文件了位置。

答案 1 :(得分:0)

可能您可以将文件信息提供程序用于.net核心..

    IFileProvider provider = new PhysicalFileProvider(applicationRoot);
IDirectoryContents contents = provider.GetDirectoryContents(""); // the applicationRoot contents
IFileInfo fileInfo = provider.GetFileInfo("wwwroot/js/site.js"); // a file under applicationRoot

遍历fileInfo对象...

了解更多信息......

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/file-providers

希望有所帮助......