2016-04-10 40 views
-2

xml dosyam için bir yol bulmaya çalışıyorum. sonucunu içerecek şekildeDizgilerimdeki harfleri düzgün şekilde nasıl kaldırabilirim?

string exe_location = System.Reflection.Assembly.GetExecutingAssembly().Location; 

ve başka dize: Ben .exe dosya ile tek bir dize var ben kod koşuyorum zaman

string xml_location = exe_location.Remove(exe_location.Length, -11); 

, ayıklayıcı aniden diyor ki: "Sayım az olamaz sıfırdan. \ r \ nParametre adı: sayım "

Bu basit görevle nasıl başa çıkmayı başaramadığımdan emin değilim. Herhangi bir fikir?

cevap

0

olarak (uzunluk 11'den fazla ve uzunluk -11 size negatif bir sayı elde edilmesi) "kaldırma" fonksiyonu bir sorundur weirdev bahsedilen. Ama exe montaj konumdan EXE dosyasının yolunu istiyorsanız, bu kodu kullanabilirsiniz:; = `dize xml_location` üzere

path = IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 
+0

Sadece 'System.Reflection.Assembly.GetExecutingAssembly() kullanarak' .exe'i kaldıralım. Konum; 'xml – jjm

+0

yolunu bulmak benim sorunum jjm Evet, "GetDirectoryName" işlevi size yalnızca dizini exe adı olmadan verir. "C: \ your_folder \ yourexe.exe" den "C: \ you_folder" a kadar. Bunun sizin için bir amaç olduğunu düşündüm. – Baro

+0

oh.Yeni farketmedim. Bunu çözdün. Teşekkür ederim! – jjm

0

Kaldır() öğesinin ikinci parametresi, kaldırılacak karakterlerin sayısıdır. İlk parametre, kaldırmaya başlamak için dizin. İhtiyacınız olan son on bir karakteri kaldırmak istiyorsanız.

Remove(exe_location.Length - 11, 11) 
+0

i dize xml_location = exe_location.Remove (exe_location.Length, -11) 'değişti exe_location.Remove (exe_location.Length - 11, 11); 've hiçbir şey değişmedi. (Ben hatayı alamadım, ama sayı ni değiştiremedi. – jjm

İlgili konular