*.sfv是啥类型的文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了*.sfv是啥类型的文件?相关的知识,希望对你有一定的参考价值。
要用什么才能打开这样类型的文件
参考技术A 1.SFV是什么文件?SFV (Simple File Verification)(简单文件校验)的简写。
.SFV 文件是一个简单的文本文件,它利用 CRC32 算法来完成简易的文件检测功能,对每个文件计算出一个数值并写入一个.SFV文本文件中。一般下载后会使用SFV工具对下载得到的文件进行计算,并将结果和文件中的结果进行比对,如果不同则表明下载的文件有误,需要重新下载。并用一个程序来计算指定一个或一批文件的校验、大小、日期等,并保存下来。
CRC32: CRC本身是“冗余校验码”的意思。CRC32则表示会产生一个32bit(8位十六进制数)的校验值。由于CRC32产生校验值时源数据块的每一个bit(位)都参与了计算,所以数据块中即使只有一位发生了变化,也会得到不同的CRC32值。
MD5:一种消息摘要算法(也叫单向散列函数)的名称。它通过一定的算法,根据源数据的每一位(bit)最终产生一个128位(bit)的校验值(一个32位的16进制数)。MD5最常见的应用是在密码学里,本文中主要用它来校验文件完整性——如果你觉得上述文字难以理解,那么可以简单的认为MD5就是一种128位的数字签名,用于校验文件是否被修改过即可。
SFV 最常用在RAR、MP3、ISO 等档案格式
2.有什么用?
使用者常常会在网路上下载各类型的档案,然而即使 Internet 上提供了可靠的传输环境,但有时难免会因各种因素使得下载的档案发生错误,和原来上传者提供的档案不完全一样,使用者通常难以查觉。 这时由于无法从文件大小来判断文件是否正确 (文件大小通常和原文件没有差别),而且又没有办法将原始文件拿来和下载的文件实际做比对 (因为原文件在远方的 Server 中),所以这个时候如果对方有提供.SFV 文件,那就好办了!
这个 .SFV 档的存在就是为了解决上述问题而产生的。档案的提供者在上传档案时以 SFV 软件为各档案产生出 CRC 信息,并记录在一个 .SFV 文件中,同时一并将此 .SFV 档案随其它各档上传至网路。而网路上其他使用者在下载时也同时将此 .SFV 档传回电脑,然后由 SFV 软件利用此档案的内容对其它档案做 CRC32 检测,由于档案内容一旦有任何改变时,它的 CRC32 检查码便会不同,因此便可以由此值和档案提供者的 CRC 资讯做比对,如果不相同时,便表示下载的档案和原先网路上的档案不相同(没有 100% 下载完全或传输中发生错误),使用者可以再次于网路上重新下载。
除此之外,虽然大部份的压缩软体在压缩时同时会加上自己的CRC 检查码於档案中,以供解压缩时检测,不过有些压缩软件在做分卷压缩时 (multi volumes),由於提供的 CRC 资讯不完全,以致於解压缩时虽然其中有任何档案发生 CRC 错误,但却无法指出是哪些档案发生问题,在最麻烦的情况下,使用者可能因为这个原因而重新下载整个分片压缩包,此时提供者若能先利用 SFV 软件产生简易的额外检测资讯,而使用者下载后先行检测以确任所有档案正确,若有错误也能马上得知是哪些档案有问题,再予以重新下载,便可以省下不少时间。
3.制作和使用
大家在登陆一些有名的论坛FTP下载时,在每个文件夹中都可以看到有一个SFV后缀名的文件,这个文件有什么用呢?其实它是一个分卷压缩包的检验文件,作用就是用来检查上传的分卷压缩包是否有错误,对于FXP来说,这个文件更是不可获缺的。
比如,在文件夹中都有这样的一文件夹的名字是“-[100%]--[All-files-CRC-OK]--[52-files]--[wInzHeNg]-”,如果缺少SFV文件,名字就变为“-[-SFV-file-MISSING-]-”。其实就是FTP中添加了SFV检验插件,所以它会自动检查上传的文件。
大家以后下载分卷压缩包时就连同SFV文件一起下载,下载好后先用SFV文件检查一下压缩包中是否有错误再解压,如果有错误,只需重新下载有错误的分卷包,这样就不会出现下载后解压时,Winrar跳出对话框提示说CRC错误了!
SFV文件的相关软件很多,例如:QuickSFV、flashsfv
如何使用 SFV2 在伪造查看器中仅加载特定对象?
【中文标题】如何使用 SFV2 在伪造查看器中仅加载特定对象?【英文标题】:How can I load only specifc objects in the forge viewer using SFV2? 【发布时间】:2021-03-27 23:11:59 【问题描述】:SVF2 的objectid
s/dbid
s 与 SVF1 不同。在这个SO-Answer 中,建议使用externalId
而不是objectid
。但是,viewer.loadModel(svfUrl,ids:[dbIds...])
使用 dbId
s 仅加载指定的对象。如何使用 SVF2 和 https://developer.api.autodesk.com/modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties
端点仅加载指定的对象?我可以在任何地方访问svf2 objectIds
吗?或者我可以在调用Viewer3d::loadModel
时使用externalIds
吗?
【问题讨论】:
【参考方案1】:你是对的,“SVF1 dbIDs”和“SVF2 dbIDs”之间是有区别的——SVF2格式的ID是“持久的”,这意味着在同一设计文件的不同版本中,单个ID将引用相同的设计元素(在 SVF1 中并非如此)。
不幸的是,平台的某些部分(如loadModel
查看器方法和/modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties
端点)尚未“赶上” SVF2。在这些更新可用之前,您必须手动映射“在新旧 dbID 之间”,这本身就是另一个重要的任务。
【讨论】:
SVF2 是否使用 IfcGuid 而不是 externaIds?我尝试按照您的 SO 答案 here 的建议使用viewer.model.getExternalIdMapping(onSuccessCallback, onErrorCallback)
。但是,映射的主要键是 IfcGuids 而不是 /modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties
端点返回的 externalIds。 SVF2 是否也破坏了此功能?
是的,在 SVF2 中,IfcGUID
属性不再包含在属性中,因为它在 external_id
中使用。
那么有效地没有办法将 SVF1 属性映射到 SVF2 属性,或者是否存在? viewer.model.getExternalIdMapping
或 /modelderivative/v2/regions/eu/designdata/:urn /metadata/:guid/properties
何时可以与 SVF2 一起使用?
支持 SVF1 ID 和 SVF2 ID 之间的清晰映射是一项正在进行的工作,但您也许可以开始尝试一些已在最新版本的 Forge Viewer 中添加的逻辑,例如例如,Model
类现在应该提供一个名为 remapDbId
的方法,该方法应该能够将“旧”dbID 映射到“新”dbID。
这将是我需要的功能。但是,根据源代码它只设置为2D模式而不是3D模式://F2D/PDF only -- mapping of F2D/PDF dbids to OTG property database v2 dbids
------------ this.setDbIdRemap = function (dbidOldToNew) if (this.is2d()) this.idRemap = dbidOldToNew; ;
以上是关于*.sfv是啥类型的文件?的主要内容,如果未能解决你的问题,请参考以下文章
头文件和源文件中的 typedef 返回类型 - 最佳实践是啥?