[C#] Jak sprawdzic format pliku

0

Jest jakis sposob zeby programowo sprawdzic jaki format ma plik, jak wiadomo czesto pliki maja inny format niz wskazuje na to rozszerzenie.

0

Sprawdzić zgodność ze specyfikacją, np. pliki wielu typów powinny rozpoczynać się określoną sekwencją bajtów.

0

To nie jest taka banalna sprawa, są programy zajmujące się takim rozpoznawaniem plików (np. file spod uniksów). Jak rozpoznać np. plik PE? Sprawdzanie 2 pierwszych wartości, to trochę za mało - sprawdzanie całego nagłówka PE to już trochę dużo. Co zrobić zresztą z plikiem, który ma nagłówek nieco zmodyfikowany, nadal wykona się jak poprawny plik PE, ale od 'standardu' odbiega. I różne takie... ale może zbyt skomplikowałem?

0

Pliki PE poznaje się po dwóch rzeczach - 'MZ' - z nagłówka dosowego i 'PE\0\0' wskazywanym przez ostatnie pole wspomnianego nagłówka, reszta Cię nie interesuje, co najwyżej flagi charakterystyk żeby typ binarki odróżnić.

1

Zależy co chcesz zrobić - jeśli chcesz sprawdzić czy plik jest w danym formacie - możesz (próbować - patrz wypowiedź somekinda) . Jeśli jednak nie znasz formatu, a chcesz go uzyskać z pliku to jesteś na właściwie straconej pozycji. Np. Pliki txt - ciąg bajtów, wyróżniający się tym tylko że nie ma w nim 'nul'i. Ale przecież nie każdy plik bez nuli to txt. Albo jeszcze lepiej - pliki COM - powodzenia.

Ogólnie wszystkie pliki w komputerze (tak, wiem że to wiesz ;) ) to tylko ileśtam bitów, a to od programu zależy jak je zinterpretuje.

0
MSM napisał(a)

Zależy co chcesz zrobić.

Chce tylko miec pewność, że plik z danym rozszerzeniem jest rzeczywiscie plkiem typu na który wskazuje to rozszerzenie

0

Dowolny plik? Wszystkie rozszerzenia?

0
somekind napisał(a)

Dowolny plik? Wszystkie rozszerzenia?

Głównie chodzi o te najczesciej stosowane(nie jakies egzotyczne) np jpg, bmp, tiff, gif, png, avi, mpeg itp...

1 użytkowników online, w tym zalogowanych: 0, gości: 1