2013-10-10 2 views
0

Windows 6.5.3에서 작은 응용 프로그램을 개발 중입니다. 이를 위해서는 C 드라이브에서 하나의 XML 파일을 읽어야합니다. 파일을 읽으려고 할 때 아래 오류가 나타납니다. 파일 액세스를 확인했습니다. 괜찮아.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() 

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) 

답변

2

Windows Mobile에 "C"드라이브가 없습니다. 드라이브 문자가 전혀 없습니다. PC에서 파일을 열려고하는 것처럼 보입니다. 그러나 Windows Mobile 장치는 모든 용도와 목적으로 완전히 별개의 장치입니다. 에뮬레이터라고해도 가상 컴퓨터이며 호스팅 PC의 파일 시스템에 대한 개념이 없습니다.

파일을 장치의 파일 시스템으로 가져와야합니다. 콘텐츠 항목으로 프로젝트에 추가하면 Studio가 앱을 배포 할 때 장치로 푸시하도록 할 수 있습니다. 에뮬레이터 설정을 통해 PC 폴더를 공유하면 장치 파일 시스템의 폴더가 "\ Storage Card"IIRC로 마운트됩니다. 원격 파일 뷰어와 같은 도구를 사용하여 파일을 복사 할 수 있습니다. 파일을 장치로 가져 오는 많은 방법이 있지만 PC에서 직접 열려고하면 작동하지 않습니다.

+0

감사합니다. 나는 당신의 해결책을 따랐습니다. 잘 작동합니다. – Gansun