2016-10-24 1 views
1

Ich erhalte meinen ausführenden Assembly-Pfad in einer Zeichenfolge, und ich möchte nicht den gesamten Pfad, den ich brauche, um einen Teil davon zu verwenden, und muss von diesem Pfad aus auf einen anderen Ordner zugreifen.Ändern des resultierenden ausführenden Assemblypfads C#

Sagen wir, ich brauche eine xml aus dem Ordner zu bekommen

" E:\Mahi_WorkSpace\TFS \Atrias.WebAutomationTesting\XmlFolder"

wo mein Ausführen Montagepfad

ist
" E:\Mahi_WorkSpace\TFS \Atrias.WebAutomationTesting\TestResults\t.mahidharreddy_123 2016-10-24 07_39_26\Out" 

Jetzt muss ich nur "E:\Mahi_WorkSpace\TFS \Atrias.WebAutomationTesting\ " von der Ausführung Montage Zeichenfolge

public string GetStringBody() 
    { 
     System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters(); 
     string path=Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 
//srting xmlpath=?? 
     return xmlpath; 


    } 

Antwort

0

Dies ist nur eine weitere mögliche Lösung:

public string GetStringBody() { 
    System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters(); 
    string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 
    var di = new DirectoryInfo(path); 
    return di.Parent.Parent.Parent.FullName; // here you should define how many level you want to up 
} 
+0

Danke @Mega Tron – JAYDHEER

+0

@JAYDHEER Glad Hilfe – Marusyk

+0

Hallo Mega Tron haben das hat gut funktioniert, danke für die schnelle Antwort – JAYDHEER

1

Versuchen Sie thi s.

string path = Path.GetDirectoryName(Path.GetDirectoryName(TestContext.TestRunDirectory));

Dies wird Ihnen das übergeordnete Verzeichnis des von der Atrias.WebAutomationTesting erstellt TestResults Ordner geben, die, glaube ich, ist das, was Sie suchen.

Referenz: MSDN: TestContext.TestRunDirectory Property

+0

Danke für den Link Shiva – JAYDHEER

0

Sie können über die übergeordneten Verzeichnisse durchlaufen, bis zum Zielknoten erhalten.

var currentDirectoryPath = AppDomain.CurrentDomain.BaseDirectory; 

var parentDirectory = System.IO.Directory.GetParent(currentDirectoryPath); 
while (!string.Equals(parentDirectory.Name, "Atrias.WebAutomationTesting", StringComparison.CurrentCultureIgnoreCase)) 
{ 
    parentDirectory = parentDirectory.Parent; 
    if (parentDirectory == null) 
     break; 
} 

if (parentDirectory != null) 
{ 
    var targetDirectory = parentDirectory.FullName + "\\Test"; 
    MessageBox.Show(targetDirectory); 
} 
+0

Danke Saeid es funktionierte – JAYDHEER

Verwandte Themen