none
como verificar se ja existe arquivo xml RRS feed

  • Pergunta

  •  

    minha duvida é a seguinte preciso verificar se ja existe um arquivo xml no diretorio raiz do meu projeto

     

    tenho um botão que ao ser acionado precisa identificar se ja existe um arquivo xml se ja existir ele vai criar o xml(isso ja esta funcionando)

    se o arquivo xml ja existir ele vai incrementar um novo nó no arquivo xml(isso tb ja esta funcionando

     

     

     

    estou usando a função load do objeto xmldocument para ler o arquivo xml porem esta função é void

    eu não consigo fazer por exemplo um if comparando se doc.Load("password11.xml")== null ou 

    doc.Load("password11.xml")==false criar o xml

     

     

    criação do objeto e função que estou utilizando

    XmlDocument doc = new XmlDocument();

    doc.Load("password11.xml");

    quarta-feira, 24 de setembro de 2008 11:54

Respostas

  • Olá,

     

    Existe uma razão pela qual minha solução parece ser mais complicada que a sua:

     

    A minha solução, com certeza, vai sempre procurar o arquivo na mesma pasta onde está o executável...

    Já a sua solução, nem sempre vai fazer isso... Portanto, não há garantias que a sua solução funcione sempre Wink

     

    Quando você cria uma atalho para uma aplicação, você define ONDE o executavel da aplicação está, e QUAL será a pasta de trabalho (Working Directory). Normalmente as pessoas não definem a pasta de trabalho, então o Windows assume que é a mesma pasta onde está o executável...

     

    Veja a imagem abaixo para referência:

    http://i36.tinypic.com/2dl7vb7.jpg

     

    E é isso que está acontecendo com você, por isso sua solução está funcionando (por enquanto) Big Smile

     

    Eu também gosto de manter as coisas simples, mas, mais importante do que que isso, é garantir que o código faz exatamente aquilo que você quer que ele faça Wink

     

    Abraços,

    Caio Proiete

     

    PS: Por favor, marque o tópico como resolvido Wink




    Caio Proiete
    http://www.caioproiete.com
    quarta-feira, 24 de setembro de 2008 13:26

Todas as Respostas

  • Olá,

     

    Para verificar se um arquivo existe, você pode utilizar o método Exists da classe File, que está no namespace System.IO:

     

    Code Snippet

     

    if (File.Exists(@"C:\password11.xml"))

    {

    // O arquivo existe!

    }

     

     

    Como pode ver, o código acima utiliza um caminho fixo... Se o arquivo está na mesma pasta (ou subpasta) da aplicação, você terá de primeiro descobrir o caminho onde está a sua aplicação, e montar o caminho completo do arquivo.

     

    Se estiver utilizando Windows Forms, seria algo assim:

     

    Code Snippet

     

    // Obtém o caminho onde está o executável

    string caminhoAplicacao = Path.GetDirectoryName(Application.ExecutablePath);

     

    // Monta o caminho completo do arquivo XML

    string arquivo = Path.Combine(caminhoAplicacao, "password11.xml");

     

    // Verifica se o arquivo existe

    if (File.Exists(arquivo))

    {

    // O arquivo existe!

    }

     

     

     

    Já se estiver utilizando ASP .NET, então seria algo assim:

     

    Code Snippet

     

    // Obtém o caminho onde está a aplicação

    string caminhoAplicacao = Server.MapPath("~/");

     

    // Monta o caminho completo do arquivo XML

    string arquivo = Path.Combine(caminhoAplicacao, "password11.xml");

     

    // Verifica se o arquivo existe

    if (File.Exists(arquivo))

    {

    // O arquivo existe!

    }

     

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    quarta-feira, 24 de setembro de 2008 12:09
  • é esqueci de dizer estou utilizando windws form mesmo eu fiz de forma um pouco mais simples do que vc sugeriu,

    mas sua ajuda foi fundamental para resolução do meu problema abaixo como eu fiz.

     

    Valew

     

     

    if (File.Exists("password11.xml"))

    {

    Console.WriteLine("o arquivo existe");

    }

    else

    {

    Console.WriteLine("o arquivo não existe");

    }

     

    quarta-feira, 24 de setembro de 2008 12:53
  • Olá,

     

    Existe uma razão pela qual minha solução parece ser mais complicada que a sua:

     

    A minha solução, com certeza, vai sempre procurar o arquivo na mesma pasta onde está o executável...

    Já a sua solução, nem sempre vai fazer isso... Portanto, não há garantias que a sua solução funcione sempre Wink

     

    Quando você cria uma atalho para uma aplicação, você define ONDE o executavel da aplicação está, e QUAL será a pasta de trabalho (Working Directory). Normalmente as pessoas não definem a pasta de trabalho, então o Windows assume que é a mesma pasta onde está o executável...

     

    Veja a imagem abaixo para referência:

    http://i36.tinypic.com/2dl7vb7.jpg

     

    E é isso que está acontecendo com você, por isso sua solução está funcionando (por enquanto) Big Smile

     

    Eu também gosto de manter as coisas simples, mas, mais importante do que que isso, é garantir que o código faz exatamente aquilo que você quer que ele faça Wink

     

    Abraços,

    Caio Proiete

     

    PS: Por favor, marque o tópico como resolvido Wink




    Caio Proiete
    http://www.caioproiete.com
    quarta-feira, 24 de setembro de 2008 13:26