46 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|