Ich habe eine Konsolenanwendung in C# und ich möchte eine XML-Datei laden, der Pfad zur Datei wird über console.readline (). Aber ich möchte die Datei aus dem angegebenen Pfad laden, aber wenn der Benutzer nur den Namen der Datei angibt, möchte ich in dem lokalen Ordner, von dem aus die Anwendung ausgeführt wird, danach suchen. Wie kann ich wissen, wenn ich nur einen Dateinamen als Eingabe oder einen vollständigen Dateipfad bekomme. Ich schaffte das mit: var isFileNameOnly = ((xmlFilePath.IndexOf("\\")) == -1);
wie zu überprüfen, ob eine Eingabe von der Konsole liest ist ein Dateiname oder eine Datei voller Pfad
Aber das ist hässlich und wahrscheinlich sehr Buggy.
Voll Code:
var xmlFilePath = Console.ReadLine();
var xmlFile = new XmlDocument();
var isFileNameOnly = ((xmlFilePath.IndexOf("\\")) == -1);
try
{
if (isFileNameOnly)
{
xmlFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, xmlFilePath);
}
xmlFile.Load(xmlFilePath);
}
Thx
ja, aber, wenn ich versuche, die app von der Kommandozeile (cmd), die XmlDocument.Load() auszuführen, wird versuchen, das zu finden, Datei nicht in BaseDirectory, sondern in C: \ user \ myuser \, also muss ich wissen, ob es sich um eine Datei handelt, damit ich den BaseDirectory-Pfad an die Datei anhängen kann. Ich denke, wird das Basisverzeichnis anhängen und dann überprüfen, ob es existiert. thx – TBogdan