JD2022-TU1/main/tools/legacy/SerializeFileList/SerializeFileListDLL/Serializer.cs

46 lines
1.4 KiB
C#

using System;
using System.Text;
using System.IO;
namespace SerializeFileList
{
public class Serializer
{
private void Write(Stream _stream, UInt32 _data)
{
byte[] values = BitConverter.GetBytes(_data);
Array.Reverse(values);
_stream.Write(values, 0, sizeof(UInt32));
}
private void Write(Stream _stream, string _data)
{
byte[] values = Encoding.ASCII.GetBytes(_data);
Write(_stream, (UInt32)_data.Length);
_stream.Write(values, 0, values.Length);
}
public void Do(string _destFile, string _inputFile)
{
string[] files = File.ReadAllLines(_inputFile);
using(FileStream fs = File.Create(_destFile))
{
Write(fs, (UInt32)files.Length);
UInt32 defaultFlags = 0;
foreach(string file in files)
{
string directory = Path.GetDirectoryName(file).Replace("\\", "/") + "/";
string basename = Path.GetFileName(file);
UInt32 stringid = (UInt32)ITF_StringID.StringID.ComputeCRC(file);
Write(fs, directory);
Write(fs, basename);
Write(fs, stringid);
Write(fs, defaultFlags);
}
}
}
}
}