Ist es möglich, die Erweiterung einer Datei zu erhalten, aber wenn Sie den gesamten Pfad außer der Erweiterung angeben? Zum Beispiel:Dateierweiterung ohne Angabe von Erweiterung im Pfad
C: \ Benutzer \ Administrator \ Bilder \ BlueHillsTest
Dank
Ist es möglich, die Erweiterung einer Datei zu erhalten, aber wenn Sie den gesamten Pfad außer der Erweiterung angeben? Zum Beispiel:Dateierweiterung ohne Angabe von Erweiterung im Pfad
C: \ Benutzer \ Administrator \ Bilder \ BlueHillsTest
Dank
Directory.GetFiles
ermöglicht es Ihnen, einen Platzhalter angeben, nach Dateien suchen nach:
System.IO.Directory.GetFiles(@"C:\temp\py\", "test.*")
für mich, gibt ein Array von 3 Übereinstimmungen ergeben. I erwartet ein Array, da das Verzeichnis test.cover
, test.py
und test.pyc
enthält.
Wenn ich die First
Erweiterungsmethode:
System.IO.Directory.GetFiles(@"C:\temp\py\", "test.*").First()
dann nur es gibt das erste Ergebnis (test.cover
).
jedoch mit der Single
Erweiterungsmethode:
System.IO.Directory.GetFiles(@"C:\temp\py\", "test.*").Single()
wirft ein InvalidOperationException
, weil die „Sequenz mehr als ein Element enthält“ (was sein könnte, was Sie wollen, je nach Ihren persönlichen Umständen).
Aber wenn ich
System.IO.Directory.GetFiles(@"C:\temp\py\", "step.*").Single()
versuchen dann bekomme ich nur step.py
(keine Ausnahme ausgelöst), weil das die einzige Datei ist step.*
in diesem Verzeichnis entspricht.
Nein, es ist nicht möglich, da Sie beide BlueHillsTest.xxx
und BlueHillsTest.yyy
in diesem Ort haben könnten. Welche erwarten Sie in diesem Fall?
möglicherweise ein Array aller Erweiterungen zurückgeben. – chriszero