Compact Framework

sabato 20 marzo 2004 - 19.56

GoldenSky Profilo | Newbie

Salve a tutti,

Ho da poco cominciato a cimentarmi nello sviluppo di apllicazioni per dispositivi portatili e avendo l'esigenza di caricare un file .xml, ho provato a mettere in pratica una parte di codice trovata in un articolo presente in questo sito. Il codice che ho provato ad utilizzare è il seguente:

Dim path As String = "Anagrafica.xml"
'istanzio il documento
Dim Doc As New XmlDocument
'lo carico in memoria
Doc.Load(path)
'recupero il nodo root
Dim element As XmlElement = Doc.DocumentElement
'recupero il valore all'interno del primo figlio dell'elemento root
Dim node As XmlNode = element.FirstChild
MsgBox(node.InnerText)

bene, dopo la compilazione del documento però mi crea il seguente errore:

'Eccezione non gestita di tipo "System.IO.FileNotFoundException" in System.Xml.dll
Informazioni aggiuntive: FileNotFoundException'

se ho capito bene, non trova il file "Anagrafica .xml" che però esiste!

Dove sbaglio??

Ringrazio tutti coloro che tenteranno di darmi una mano ;)

Brainkiller Profilo | Guru

Ciao,
evidentemente il path che stai utilizzando non è corretto.
Anche io mi sono cimentato nella costruzione di applicazioni per Mobile Devices anche se per poco però devo dire con discreto successo.
Immagino tu stia programmando per palmari ? Stai usando un emulatore oppure un device vero e proprio ?
Io ho gestito file e ho utilizzato questo tipo di Path:

Dim tr as TextReader
tr=File.OpenText("\My Documents\file.xml")

Prova ad usare lo stesso tipo di path che ho usato io con la tua funzione per caricare il file .XML, dovrebbe funzionare. Naturalmente sposta il file file.xml nella cartella My Documents del tuo palmare.

ciao
david

GoldenSky Profilo | Newbie

Ciao,
innanzitutto ti ringrazio per la risposta. Dispongo sia di Pocket Pc che di emulatore e ho provato con il path "\My documents\Anagrafica.xml" e spostando il file in quella cartella effettivamente funziona.
Però mi chiedo, dal momento che in automatico il file Anagrafica.xml me lo trovo nella stessa cartella dove ho l'eseguibile, come faccio a caricarlo in quella posizione? Per intenderci meglio, vorrei sapere come funziona quello che in Vb6 sarebbe stato (App.path & "Anagrafica.xml").

Grazie ancora,

Fabio

Brainkiller Profilo | Guru

Prova così:

Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetModules()(0).FullyQualifiedName)

Dovrebbe restituirti la cartella del programma eseguito.
ciao

david

GoldenSky Profilo | Newbie

Grazie 1000, funziona benissimo!

Ma lasciare app.path gli pareva brutto?!? ;D

Brainkiller Profilo | Guru

>Ma lasciare app.path gli pareva brutto?!? ;D

No comment :) D'altronde il Framework .NET è un'architettura completamente nuova.
ciao

david
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5