別の方法を試しました。
次のようなシリアル化可能なクラスを作成しました。
[Serializable]
public class FileEntry
{
public string Name { get; set; }
public byte[] Content { get; set; }
}
クラス処理ファイル内:
public void AddFiles(string[] Files)
{
int index = _files.Count;
foreach (string file in Files)
{
{
_files.Add(new FileEntry());
_files[index].Name = Path.GetFileNameWithoutExtension(file);
_files[index].Content = File.ReadAllBytes(file);
index++;
}
byte[] bytes = null;
BinaryFormatter serializer = new BinaryFormatter();
using (MemoryStream memoryStream = new MemoryStream())
{
serializer.Serialize(memoryStream, _files);
bytes = memoryStream.ToArray();
}
File.WriteAllBytes(_filePath, bytes);
}
また:
public List<FileEntry> GetFiles()
{
byte[] bytes = File.ReadAllBytes(_filePath);
if (bytes.Length > 0)
{
BinaryFormatter serializer = new BinaryFormatter();
using (MemoryStream memoryStream = new MemoryStream(bytes))
_files = serializer.Deserialize(memoryStream) as List<FileEntry>;
}
return _files;
}
現在、それは魅力のように機能します:)