File.Move szívás

Egy keretrendszer ismerete nagyon fontos. Pontosan kell ismerni minden alapvető funkcióját és azok mögöttes jelentését, működését is. Cégünk büszke arra, hogy nem csak az “Adatbázis kezelők használata” hanem az “Adatbázis kezelők tervezése és építése” című könyvet is elolvastuk. Nem csak használni tudjuk, de értjük a működését is (“Nini, ez az index jelentősen lassítja a lekérdezéseket!”). Mégis okoz meglepetést néha a világ…

move

A Windows95 óta tudjuk, hogy a futó alkalmazásokat át lehet nevezni, hiába futnak. Nem csak átnevezni lehet őket, hanem az átnevezéssel át is mozgatni. Sőt egy alkalmazás saját magát is át tudja nevezni és ezáltal átmozgatni. Ezt gyakran használják arra, hogy a frissítéskor az alkalmazás ki tudja magát cserélni. Ügyvitelileg és infrastrukturálisan is integrált rendszerünk (erre a szóhalmazra adok egy kis időt) nyilván önmagát frissíti, letölti az új verziót, cserél, majd újraindít (Application.Restart() speciális esete parancssori kapcsolókkal).

Egy ügyfél jeleztem, hogy neki nem megy: “A fájl helyén egy másik fájl található“. Mivan??? Ugyanazzal a verzióval egyik kollégánk is jelezte, hogy baj van. De csak ő. A többiek miért nem? A kollégának megoldottuk kézzel, az ügyfélnek az RDP-jéhez hozzáférünk, ott is megoldódott. De mi lehet a hiba? Több fejlesztő kellett hozzá, több munkaóra munkaperc, mire kiderült: A desktop folder nem a C: meghajtón van. Ügyfél K: meghajtóra tette, kollégánk pedig a teljes dokumentum mappáját, vele az asztalt is a D:-ra. De akkor is furcsa a hibajelenség.

Az ok kiderült (http://msdn.microsoft.com/en-us/library/system.io.file.move(v=vs.80).aspx), a File.Move működik meghajtók között is, de futó alkalmazásnál már nem. Sőt hibaüzenet (gyk: Exception) sem keletkezik! Elmozgatás nem megy, letöltés megy, felülírás nem megy. Grrr…. Felhagyva elveinkkel, készítettünk egy külső letöltőt, amely 87kB lett, parancssorból kapja, hogy mit és hova töltsön le. Van opció az indításra, stb. A Symbol Ügyvitel ezt indítja, letölt, újraindít. Megy. De akkor is szíven ütött minket szakmailag. Még egy grrr…