0

我正在 Windows 6.5.3 中开发小型应用程序。为此,我需要从 C 盘读取一个 XML 文件。当我尝试读取文件时,出现以下错误。我检查了文件访问。没关系。

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

堆栈跟踪

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()

代码

 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)
4

1 回答 1

2

Windows Mobile 中没有“C”驱动器。根本没有驱动器号。看起来您正试图在您的 PC 上打开文件,但从所有意图和目的来看,Windows Mobile 设备都是一个完全独立的设备。即使它是模拟器,它也是一个虚拟机,并且不知道托管 PC 的文件系统。

您必须将文件放入设备的文件系统。您可以将其作为内容项添加到您的项目中,这将使 Studio 在部署应用程序时将其推送到设备。您可以通过模拟器设置共享 PC 文件夹,这会将文件夹作为“\Storage Card”IIRC 挂载到设备文件系统上。您可以使用远程文件查看器等工具复制文件。有很多方法可以将文件获取到设备,但尝试直接从 PC 打开它是行不通的。

于 2013-10-10T13:55:53.120 回答