从C盘读取XML文件

时间:2013-10-10 13:22:45

标签: windows-mobile windows-mobile-6.5

我正在开发Windows 6.5.3中的小应用程序。为此我需要从C盘读取一个XML文件。当我尝试读取文件时,我收到以下错误。我检查了文件访问权限。很好。

“价值不在预期范围内。”

STACK TRACE

at System.IO.__Error.WinIOError(Int32 errorCode, String str)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync, String msgPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials)
at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
at System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings, XmlParserContext inputContext)
at System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings)
at System.Xml.Linq.XElement.Load(String uri, LoadOptions options)
at FREEMobile.frmMainMenu.frmMainMenu_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form._SetVisibleNotify(Boolean fVis)
at System.Windows.Forms.Control.set_Visible(Boolean value)
at System.Windows.Forms.Application.Run(Form fm)
at FREEMobile.frmMainMenu.Main()

CODE

 Dim faciltyXML As XElement
 Dim strFileName As String =   "C:\Users\xs1969\Desktop\FREEMobile\FREEMobile\Facility.xml"
 faciltyXML = XElement.Load(strFileName, LoadOptions.None)

编辑1:

谢谢CTACKE。我做了以下更改。工作正常。

Dim faciltyXML As XElement
Dim strAppDir As String =   Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase)
Dim strFullPathToMyFile As String = Path.Combine(strAppDir, "Facility.xml")
faciltyXML = XElement.Load(strFullPathToMyFile)

1 个答案:

答案 0 :(得分:2)

Windows Mobile中没有“C”驱动器。根本没有驱动器号。看起来您正在尝试在PC上打开文件,但Windows Mobile设备无论如何都是一个完全独立的设备。即使它是模拟器,它也是一个虚拟机,并且没有主机PC文件系统的概念。

您必须将文件存入设备的文件系统。您可以将其作为内容项添加到项目中,这将使Studio在部署应用程序时将其推送到设备。您可以通过仿真器设置共享PC文件夹,该设置将文件夹作为“\ Storage Card”IIRC安装在设备文件系统上。您可以使用远程文件查看器等工具复制文件。有很多方法可以将文件传输到设备,但尝试直接从PC打开它将无法正常工作。