用VS创建一个c#工程,运行该段代码之前在生成的.exe文件的同级目录创建两个文件夹,一个为“CSV”,一个为“CSharp”。
<strong><span style="font-size:18px;"> class Program
{
static void Main(string[] args)
{
string url = System.AppDomain.CurrentDomain.BaseDirectory + @"CSV\";
DirectoryInfo folder = new DirectoryInfo (url);
foreach (var item in folder.GetFiles("*.csv"))
{
string fileName = item.Name;
Program.CsvFileToCSharpClass (url + fileName);
}
}
public static void CsvFileToCSharpClass ( string filePath )
{
//读取所有的数据
string[] lines = File.ReadAllLines (filePath);
//类型
string[] typeName = lines[0].Split (',').Select (str => str.Trim ()).ToArray ();
//属性
string[] variableName = lines[1].Split (',').Select (str => str.Trim ()).ToArray ();
//注释
string[] noteStr = lines[2].Split (',').Select (str => str.Trim ()).ToArray ();
//类的名字
string className = Path.GetFileNameWithoutExtension (filePath);
//类的结构
string code = "using UnityEngine;\nusing System.Collections;\nusing System.Collections.Generic;\n\n";
code += String.Format ("\n/// {0}.cs——CSV信息类\n\n", className);
code += String.Format ("{0}public class {1} {{ \n\n", "", className);
for (int i = 0; i < typeName.Length; i++)
{
code += String.Format ("\t//{0}\n", noteStr[i]);
code += String.Format ("{0}public {1} {2} {{ get; set; }}\n\n", "\t", typeName[i], variableName[i]);
}
code += "}\n";
string url = System.AppDomain.CurrentDomain.BaseDirectory + @"CSharp\";
string CSharpFile = String.Format ("{0}{1}.cs", url, className);
File.WriteAllText (CSharpFile, code);
}
}</span></strong>