Entwickler-Ecke

ASP.NET und Web - Version einer Datei am Server überprüfen


Aragon - So 21.08.11 09:12
Titel: Version einer Datei am Server überprüfen
Hallo,
suche jetzt schon seit einer Woche im Netz, finde aber keine passende Anwort.
Per FtpWebRequest lade ich Dateien auf einen Server hoch, ich kann die Größe,Zeit,Type auslesen mit
WebRequestMethods.http://Ftp.ListDirectoryDetails;
Jetzt habe ich das Problem das ich prüfen muss ob die Dateien die am Server liegen auch die gleiche Versionsnummer haben wie die Versionsnummer in meiner Datenbank.
Ich möchte aber nicht jede einzelne Datei auf den Computer downloaden um die Version festzustellen.
Kann mir einer helfen die Versionsnummer einer Datei die am Server liegt festzustellen?


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (.NET) verschoben am So 21.08.2011 um 11:41


Christian S. - So 21.08.11 11:40

Wie ist denn die Versionsnummer hinterlegt?


Aragon - So 21.08.11 12:15

Die Datei die am Server liegt hat diese Informationen normal in den Eigenschaften/Details/ in den Dateiversion und Produktversion beinhaltet.
diese Dateiversion kann ich am pc mit

FileVersionInfo Version = FileVersionInfo.GetVersionInfo(DateiPfad);
VersionNeu = Version.FileVersion;

auslesen und jetzt möchte ich gerne das mit der Datei die am Server liegt vergleichen, d.h. ich muß die Versionsnummer der Datei die am Server liegt auslesen können was mir nicht gelingt ohne die Datei zu downloaden


jaenicke - So 21.08.11 14:02

Das steht ja auch nur in den Daten in der Datei drin, da geht das eben nicht anders.

Deshalb hinterlege die Version doch einfach in einer anderen Datei oder Datenbank und frage sie dort ab, z.B. auch über ein Skript auf dem Server. ;-)


Aragon - So 21.08.11 15:13

Hallo, thx für die schnellen Antworten,
beim hochladen der Datei schreib ich die Versionsnummer in eine Datenbank, das hat ja bis jetzt immer geklappt und ich habe die Versionsnummer über DB wieder abgefragt.
Leider wenn sich ein Fehler einschleicht stimmt der ganze Ablauf nicht mehr, wenn ich falsche Informationen ablese.
Auch wenn ich die versionsnummer in eine Datei ablege hat sie mit dem Original der Versionsnummer nichts am Hut.
Wenn (ist leider schon passiert) die Datei aus einem dringenden Grund per FTP oder sonst wie ersetzt werden muss, stimmt die Versionsnummer in der DB und Datei nicht mehr.
Gibt es denn keine Möglichkeit von der Originaldatei die am Server liegt die Versionsnummer abzufragen ?
Das ist mein Problem das ich versuche zu lösen


jaenicke - So 21.08.11 15:46

Dafür brauchst du aber die Daten aus der Datei, du musst diese also zumindest teilweise herunterladen...

Oder du schreibst dir eine Funktion, die die Auswertung serverseitig macht und zurückgibt.

Aber wenn die Daten eben in der Datei sind, kommst du ohne die Dateidaten auch nicht weiter. :nixweiss:


Aragon - So 21.08.11 16:16

vielleicht drücke ich mich falsch aus, ich habe die Versionsnummer nicht in der Datei als Text stehen.
So wie in jeder anderen Datei auch, in den Eigenschaften der Datei wo auch Typ,Dateiversion,Produktname,Copyright,Größe,Sprache usw. drin steht.
Auf der Festplatte ist es ja ein einfacher Befehl die Versionsnummer auszulesen aus den Eigenschaften der Datei,
meine Frage gibt es auch eine Möglichkeit die Versionsnummer aus den Eigenschaften einer einer Datei die am Server liegt auszulesen?


Aragon - So 21.08.11 16:19

Mein Problem wenn ich 200 Dateien auf Version prüfen will, will ich mir nicht 200 Dateien herunterladen nur um die Versionsnummer zu prüfen ob diese mit meiner DB noch übereinstimmen


Christian S. - So 21.08.11 16:22

Eigenschaften wie Dateiversion etc. stehen aber in der Datei (IIRC im Resourcen-Abschnitt), die sind nicht Teil des Dateisystems. So hat ja z.B. eine simple Textdatei keine von diesen Eigenschaften.

Eine Möglichkeit wäre, auf dem Server einen Dienst laufen zu lassen, der diese Eigenschaften ausliest und dem Client mitteilt.


Aragon - So 21.08.11 16:40

Danke für die Antwort,
deswegen finde ich im Netz auch nichts.
Ich kann also nicht von einer exe Datei die am Server liegt die Versionsnummer auslesen, ohne die Datei zu downloaden und dann die Versionsnummer auszulesen.