Gibt es eine Möglichkeit, die genaue Dateiendung zu finden.Falls beispielsweise die Erweiterung .csv ist, hat jemand die Erweiterung manuell in .xlsx geändert (zB Änderung der .csv Erweiterung manuell im Desktop in. pdf) .wo .Now Dateierweiterung wird in .xlsx Format geändert, aber Inhalt gehören zu .csv Format.So gibt es eine Möglichkeit, diese Art von bösartigen Datei in C# zu finden. Im Folgenden Code erhalten die Dateierweiterung, aber es nicht weiß, ob die Dateierweiterung manuell geändert wird oder nichtC# böswillige Änderung des Dateiformats
Path.GetExtension(Be.FileName).ToLower().Contains(".csv")
Ich möchte beide Inhaltstyp-Erweiterung überprüfen und auch extension.Since einige Eindringling kann die Datei Datei ändern Erweiterung in die Erweiterung, die wir wollen.Aber Dateiinhalt kann zu einer anderen Erweiterung gehören.Nach oben genannten Code finden Sie nur die Dateinamenerweiterung und nicht inhaltlich Extension.
Haben wir eine andere Eigenschaft in CSVhelper, um diese Art von Datei zu finden.
Kann mir jemand helfen?
Was Sie haben, finden Sie "die genaue Erweiterung" - aber das ist sehr verschieden von "das Format des tatsächlichen Inhalts der Datei." Es gibt keine garantierte Beziehung zwischen einem Dateinamen und seinem Inhalt. –
Sie könnten eine Art Heuristik-Dateiprüfer erfinden ... aber die schiere Menge an Fällen würde das unwahrscheinlicher machen. Sie wissen, was Sie als Datei "wollen" - versuchen Sie, es zu parsen, Fehler zu finden und den Benutzer zu schützen. Mist drin - Mist. –
Bedenken Sie auch, dass zwei Dateien * genau den gleichen Inhalt * enthalten können, aber die beabsichtigte * Interpretation * ist anders. Z.B. Das Problem, mit dem Inhaltstypen in HTTP umgehen. –