none
Arquivo XML vazio RRS feed

  • Pergunta

  • Olá pessoal,

     

    Gostaria de saber como faço para saber se o arquivo XML esta vazio.

     

    Vejam o metodo que escrevi para serealizar um List<T> e armazenar em um arquivo. Acontece que esta dando erro quando faço a primeira deserialização, ou seja, quando o arquivo ainda esta vazio.

     

    // Deserializa o objeto

    dataCommandLog = (List<DataCommand>)xs.Deserialize(fs);

     

    -------------------------------------------------------------------------------------------------------------

     

     

    private void GeraArquivoXml(List<DataCommand> dataCommandList)

    {

    // Instancia do objeto que sera Serealizado/Deserealizado

    List<DataCommand> dataCommandLog = new List<DataCommand>();

     

    // Cria uma instancia de XmlSerializer

    // e especificamos o tipo de objeto para ser Serealizado/Deserializado

    XmlSerializer xs = new XmlSerializer(dataCommandLog.GetType());

     

    // Deserealizando

     

    // Cria um FileStream para abrir o arquivo XML

    FileStream fs = new FileStream("D:\\Temp\\LogTeste.xml", FileMode.OpenOrCreate);

     

    // Deserializa

    dataCommandLog = (List<DataCommand>)xs.Deserialize(fs);  //===>> AQUI ESTA DANDO ERRO

     

    // Limpa o buffer

    fs.Flush();

     

    // Fecha o FileStream

    fs.Close();

     

    // Adicionando informa‡äes ao log

    dataCommandLog.AddRange(dataCommandList);

     

    // Serealizando

     

    // Cria uma instancia de StreamWiter

    // especificando o caminho do arquivo para ser serializado

    StreamWriter sw = new StreamWriter("D:\\Temp\\LogTeste.xml");

     

    // Serializa o objeto

    xs.Serialize(sw, dataCommandLog);

     

    // Limpa o buffer

    sw.Flush();

     

    // Fecha o StreamWriter

    sw.Close();

    }

     

    -------------------------------------------------------------------------------------------------------------

     

    abs,

     

     

    quarta-feira, 20 de agosto de 2008 21:20

Todas as Respostas

  • Olá pessoal,

     

    Resolvi da seguinte forma:

     

    // Se não existir o arquivo, não faz nada

    FileInfo file = new FileInfo(@"D:\\Temp\\LogTeste.xml");

    if (file.Exists)

    {

    // Cria um FileStream para abrir o arquivo XML

    FileStream fs = new FileStream(@"D:\\Temp\\LogTeste.xml", FileMode.Open);

    // Deserializa o objeto

    dataCommandLog = (List<DataCommand>)xs.Deserialize(fs);

    // Limpa o buffer

    fs.Flush();

    // Fecha o FileStream

    fs.Close();

    }

     

    abs,

     

    quinta-feira, 21 de agosto de 2008 14:55