Как создать файл файлов? - PullRequest
0 голосов
/ 23 апреля 2010
class Node
{
    FooType Data; // I can save Data to file with extension .foo
    void Save()
    {
       // save Data to .foo file
    }
}

Теперь

class Graph
{
    List<Node> Nodes; 
    void Save()
    {
        foreach(Node node in Nodes)
        {
            node.Save();
        }
    }
}

Теперь, когда я вызываю someGraph.Save();, тогда создается Nodes.Count количество файлов.

Я хотел бы отобразить эти файлы как один файл с расширением somename.graph и иметь возможность снова прочитать его как Nodes.

Как я могу это сделать? Есть ли способ объединить файлы в один другой файл?

Ответы [ 3 ]

1 голос
/ 23 апреля 2010

Используйте формат архива, такой как zip .

Без поддержки внешней библиотеки, вы можете просто использовать механизм сериализации .Net для хранения Dictionary<string, byte[]> (имя файла и данные для каждого файла) водин файл.Начало здесь .

0 голосов
/ 23 апреля 2010

Разве вы не можете использовать классы в пространстве имен System.IO.Compression? Конкретно, GZipStream? Это не будет являться сторонней библиотекой, поскольку она встроена в .Net и доступна с версии 2.0 и выше.

0 голосов
/ 23 апреля 2010

Или Graph.Save должен передавать поток файлов, который он использует, на каждый из вызовов node.Save, поэтому Node.Save использует тот же поток файлов, что и включающий Graph.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...