c# - 如何检查资产文件是 YAML 还是二进制格式?我是直接切换它的格式吗?
问题描述
出于某种原因,我需要编辑xxx.preafb
文件,但 Unity.prefab
文件有两种格式,二进制或 YAML 所以我如何检测xxx.prefab
是YAML
格式还是binary
. 如果我检测到此文件是二进制格式,我该如何将其切换为YAML
. 我知道 Editor > AssetSerialization > Mode 它可以格式化项目的所有资产,但它改变了太多......
解决方案
由@BrainChoi 建议,只需检查一线解决方案。
static bool IsYAML(string path)
{
if(!File.Exists(path))
{
return false;
}
using (StreamReader sr = new StreamReader(path))
{
if (sr.Peek() >= 0)
{
string header = sr.ReadLine();
return header.Contains("%YAML 1.1");
}
else
{
return false;
}
}
}