2016-05-27 13 views
0
var storePath = ConfigurationManager.AppSettings[configKey]; 
var dbpath=dbpath.replace("/","\\") 
var fullFilePath = Path.Combine(storePath, dbpath); 

Wert in Config Key gespeichert -> d: \ Storage \ ResourceStoragePath.Combine() wird nicht wie erwartet funktioniert

Wert aus Datenbank: dbpath: LearnerAnswers \ test.pkg

Erwartete Ausgabe: d: \ Storage \ ResourceStorage \ LearnerAnswers \ test.pkg

tatsächliche Leistung: D: \ LearnerAnswers \ test.pkg

Aktualisiert Frage genaues Szenario für Speicherpfad

Wert von Debugger zu reflektieren: d: \ Storage \ ResourceStorage

Ich habe viel Zeit dafür ausgegeben ..aber konnte nicht herausfinden, was schief läuft?

+0

etwas falsch in Ihrem Beispiel oben? Verwenden Sie _dbpath_ oder _path_? – Steve

+0

@ Steve..dbpath ist nur mein Variablenname –

+0

Ihr dbPath wird im obigen Beispiel nicht verwendet, also warum haben Sie es überhaupt aufgenommen? – Evk

Antwort

0

Ich habe mit den Beispielpfaden überprüft, die Sie in Ihrer Frage angegeben haben, und ich bekomme genau die erwartete Ausgabe.

var storePath = @"d:\Storage\ResourceStorage"; 
var dbpath = @"LearnerAnswers\test.pkg"; 
var fullFilePath = Path.Combine(storePath, dbpath); 

Da muss etwas anderes falsch sein. Bitte verwenden Sie den Debugger im Single-Step-Modus und überprüfen Sie jeden einzelnen Wert.

Die folgende ursprüngliche Antwort war aufgrund der ungültigen Informationen in der Frage zuerst zur Verfügung gestellt.

Sie müssen die Schrägstriche hier zitieren oder @ verwenden:

var storePath = "d:\Storage\ResourceStorage"; 

So eine der folgenden Optionen verwenden:

var storePath = @"d:\Storage\ResourceStorage"; 
var storePath = "d:\\Storage\\ResourceStorage"; 

+1

Kompiliert das auch sonst? – Evk

+0

Nun, dass Sie es sagen: es sollte nicht, aber wie das OP in einem anderen Kommentar sagt, das ist nicht sein echter Code ... –

+0

Warum der Downvote? –