2009-03-12 21 views

cevap

0

Ben \\ arasında eksik bir şey var herhalde ..

0

"\ .." mantıklı değil. Verilerinizin kök klasörün üzerinde bir seviye bulunmadığını gösterir. Ayrıca, ctacke bana CE'nin göreceli yolları desteklemediği yönündeki yorumlarında beni bilgilendiriyor. göreceli yollar, işletim sisteminizde desteklenen ise, yanıtımın geri kalanı hala geçerli. Gelecekte başvurmak için (ve büyük olasılıkla, birçok kişi ilk önce tüm yazıyı okumadan aşağılama gibi görünüyor) bazı itibar kaybı için bırakacağım. :-)

Veri dosyası, uygulamanızın bulunduğu klasörün bir düzeydeyse, doğru yol '.. \ datafile.sdf'; Bazı programlama dillerinde ters eğik çizgi kaçmak zorunda, bu yüzden '.. \ datafile.sdf' olur '

Verileriniz nerede bulunur ve uygulamanız nerede? Uygulama \ yourapp \ folder \ bin dizinindeyse ve verileriniz \ yourapp \ folder \ data dizinindeyse, uygulamadan verilere giden yol '.. \ data \' olur. Veri dosyası \ yourapp \ klasöründeyse, yol '.. \' olur. Yine, kullanmakta olduğunuz dile bağlı olarak muhtemelen ters eğik çizgileri iki katına çıkarmak zorunda kalacaksınız.

+1

Doğru değil.CE'nin göreceli yolları yoktur. – ctacke

+0

İleride başvurmak için iyi bilmek. CE'yi hariç tutmak için yayını düzeltirim. Düzeltme için teşekkürler. –

3

Windows CE, göreceli bir yol kavramına sahip değildir, bu nedenle geçersiz göreceli yolunuzu "sabit" etseniz bile işe yaramaz. Mutlak yollar kullanmalısınız.

3

Yazdığınız yol göreli bir yoldur. Windows CE/Mobile göreli yolları desteklemiyor.

Bir Windows Mobile aygıtında geçerli bir dizin kavramı olmadığı için, yalnızca bir göreli yolun bilindiği bir kaynağı nasıl bulabiliriz? Bir .Net programı her zaman oluşturulduğu modüllere erişime sahiptir (genellikle .Net bileşeni bir DLL veya EXE dosyasında paketlenmiş bir modülden oluşur). Aşağıdaki satır, geçerli yürütme grubunun mutlak yolunu döndürecektir.

dize modulePath = this.GetType() Assembly.GetModules() [0] .FullyQualifiedName; Biraz daha koduyla

programınızın

Path.GetDirectoryName çalıştığı dizini alabilirsiniz (this.GetType(). Assembly.GetModules() [0] .FullyQualifiedName)

kullanma Bu bilgi kaynağınıza uygun bir yol dizesi oluşturabilir.

not: Eğer yerli API'leri kullanarak geliştiriyorsanız aşağıdakileri kullanın: GetModuleFileName (GetModuleHandle (NULL), pszFullPath, MAX_PATH);

+0

Eğer, bulunduğunuz dosya bir klasör değil, bir "subdevice" ise (terminolojinin ne olduğunu bilmiyorum, ancak Windows Gezgini'nde cihaz "subdevices" veya "superfolders" olarak ikiye ayrılır) Altında bulunan klasörlere nasıl erişileceği/belirtileceği belirtildi: .exe'im bir "subdevice" içinde ve sürüm bilgisi okumaya ihtiyaç duyan (ve muhtemelen değiştirilen) başka bir "subdevice" dosyasındaki .exe. .. –

İlgili konular