我已经看到了GetDetailsOf()用于获取有关shell项目的详细信息的答案,但数字总是神奇的数字.
我查看了FolderItem 和GetDetailsOf的文档, 但一无所获.(后者中的列表并非适用于所有内容.它们不包括"描述","作者",也不包括回收站删除日期...)
是否有一些方法可以返回项目的可能选项?它在某处列出了吗?
我正在开发一个库,它将元数据注入 .mp4 文件,以允许视频正确显示为 360 度视频。输入文件是等距柱状投影格式的标准 .mp4 文件。我知道需要注入哪些元数据,但我只是不知道如何注入它。
我花了一些时间寻找可以做到这一点的库,但只能找到用于提取元数据而不是注入/嵌入/写入元数据的库。我发现的替代方案是使用Spatial Media作为命令行应用程序来更轻松地注入元数据。问题是我对 python 的了解为零,所以我倾向于使用库/nuget 包/ffmpeg 脚本。
是否存在一个好的 nuget 包/库可以做到这一点,或者我应该选择替代选项?
我尝试将元数据粘贴到文件中的正确位置,以防万一它可以工作,但它没有。
这是谷歌空间媒体工具注入的元数据,这就是我想要实现的目标:
<?xml version="1.0"?><rdf:SphericaVideo
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:GSpherical="http://ns.google.com/videos/1.0/spherical/"><GSpherical:Spherical>true</GSpherical:Spherical><GSpherical:Stitched>true</GSpherical:Stitched><GSpherical:StitchingSoftware>Spherical Metadata Tool</GSpherical:StitchingSoftware><GSpherical:ProjectionType>equirectangular</GSpherical:ProjectionType></rdf:SphericalVideo>`
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用 ffmpeg 来做到这一点,如下所示:ffmpeg -i input.mp4 -movflags use_metadata_tags -metadata Spherical=true -metadata Stitched=true -metadata ProjectionType=equirectangular -metadata StitchingSoftware=StreetviewJourney -codec copy output.mp4
我认为 ffmpeg 方法的问题在于它不包含rdf:SphericalVideo允许使用球形视频标签的部分。
当我使用 ffmpeg 提取元数据时,它在日志中包含球形标记,但当我将其输出到 ffmetadata 文件时则不包含球形标记。这是我使用的命令:ffmpeg -i injected.mp4 -map_metadata -1 -f ffmetadata data.txt
这是日志的输出:
fps, 60 tbr, 15360 tbn, 120 tbc (default)
Metadata:
handler_name : …Run Code Online (Sandbox Code Playgroud) 某些文件在其属性中具有“摘要”选项卡,此选项卡包含诸如标题,作者,注释之类的信息。C#中有什么方法可以读取文件的注释。我只需要阅读jpg等图像文件中的注释。
可能重复:
读/写'扩展'文件属性(C#)
有谁知道如何获取文件属性窗口的详细信息选项卡中包含的信息?我忽视的任何.NET库?
这是我正在谈论的窗口/信息:

似乎有更好的方法来访问这些数据,而不是必须使用各种方法来提取各种文件类型的元数据,因为在此选项卡下可用的信息类别肯定存在一些重叠,即使对于不同的文件类型也是如此.但是我尽可能地搜索,但我没有遇到任何想要为任何(或许多)文件类型执行此操作的人 - 尽管有很多关于抓取特定文件类型的元数据的讨论.
任何你可能有的建议都是最受欢迎的:)
我在哪里可以设置文件版本注释..?
我们可以得到它
FileVersionInfo fv =
System.Diagnostics.FileVersionInfo.GetVersionInfo(
Assembly.GetExecutingAssembly().Location);
var comment = fv.Comments;
Run Code Online (Sandbox Code Playgroud)
然后我该如何设置它以便我可以在某处显示相同的内容..
因此,我按照教程使用 ASP.net 核心将文件“上传”到本地路径,这是代码:
public IActionResult About(IList<IFormFile> files)
{
foreach (var file in files)
{
var filename = ContentDispositionHeaderValue
.Parse(file.ContentDisposition)
.FileName
.Trim('"');
filename = hostingEnv.WebRootPath + $@"\{filename}";
using (FileStream fs = System.IO.File.Create(filename))
{
file.CopyTo(fs);
fs.Flush();
}
}
return View();
}
Run Code Online (Sandbox Code Playgroud)
我想读取文件(文件元数据)的扩展属性,例如:
并使用这些数据对文件进行排序,有没有办法使用 Iformfile?
右键单击.exe文件时,可以看到各种详细信息,例如文件描述.
我正在寻找以编程方式检索数据的方法(最好是从C#).
(程序名称,程序描述,供应商名称,供应商网站等)

如何使用VB.net获取Windows文件的详细信息?
我所指的详细信息类型是当我右键单击文件(例如MS Word文档),然后单击“属性”并选择“详细信息”选项卡时发现的那些信息。
我知道可以通过FileInfo获得某些信息,但不能全部获得,例如“ Tags”。谢谢
我引用了某些程序集的类型和类.
var type = typeof(SomeNamespace.SomeClass);
Run Code Online (Sandbox Code Playgroud)
有没有办法获得关于使用什么编程语言编写这个类的元数据?C#或VB或F#?
所以结果我想要这样的东西
var programmingLanguage = getLanguage(type); // C#
Run Code Online (Sandbox Code Playgroud)
UPD:
我可以分析用于此类的程序集或命名空间吗?也许这可以找到一种语言的线索?
UPD2:
到目前为止我可以使用它(这只是VB检测的一个例子)
var referenced = type.Assembly.GetReferencedAssemblies()
.Where((r) => r.Name.Contains("VisualBasic"));
Run Code Online (Sandbox Code Playgroud)
VB添加了Microsoft.VisualBasic.F#还添加了它自己的程序集,C++声明了很多我可以检测到的"自我使用"类型.所以这是"一种方式".我知道这不容易出错.并且会有一些错误的案例.那有什么更好的吗?