Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Je zjistitelný filesystemwatcher?

C# .NET .NET (C# a Visual Basic) Je zjistitelný filesystemwatcher? American English version English version

Aktivity (1)
Avatar
Dog
Člen
Avatar
Dog:17.7.2016 19:13

Ahoj,
mám dotaz, když budu mít filesystemwatcher nastavený na analyzování logfilu jednoho software, může software nějakým způsobem zjistit, že je čten jeho logfile? Podotýkám, že jen čten, kdybych dělal nějaké změny, kopie, přejmenovávání, nebo mazání tak by to zjistil určitě právě filesystemwatcher (ReadDirectoryChan­gesW) nastavený na složku s logfilem, ale neví někdo jak je to, když je jen čten?

A dá se to zjistit něják jinak, než ReadDirectoryChan­gesW? Za předpokladu, že nezná software vůbec název programu atd.

Děkuji :-)

Editováno 17.7.2016 19:15
 
Odpovědět 17.7.2016 19:13
Avatar
Odpovídá na Dog
Michal Štěpánek:18.7.2016 6:06

Nabízí se spíš otázka, co myslíš tím

analyzování logfilu jednoho software

Nevím, jak je to u "LOG" souborů, ale většinou to u souborů funguje tak, že když soubor otevřeš (byť jen ke čtení), nemůžeš do něj odjinud zapisovat (soubor je využíván jiným procesem).
Dalo by se to obejít tím, že si soubor vždycky někam zkopíruješ a po analýze zahodíš...

Nahoru Odpovědět 18.7.2016 6:06
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Dog
Člen
Avatar
Dog:18.7.2016 23:40

A kdyby to teoreticky šlo s (FileShare.Re­adWrite), tak se to dá nějakým způsobem zjistit?

 
Nahoru Odpovědět 18.7.2016 23:40
Avatar
Luboš Běhounek (Satik):19.7.2016 8:29

O co presne se snazis? :) Co se stane, kdyz ten program zjisti, ze mu ctes log? To maji opravdu hlidany log? :D

Nahoru Odpovědět 19.7.2016 8:29
:)
Avatar
Dog
Člen
Avatar
Odpovídá na Michal Štěpánek
Dog:22.7.2016 1:07

Tohle je trošku problém...Když spustím aplikaci, tak to jednou přečte log a potom to vyhodí NET. error něco takovýho... The process cannot access the file 'filename' because it is being used by another process

půjde to bud tak, že tu vyjímku nějak ošetřím, try, catch, by to mohlo jít teoreticky, nebo ten log kopírovat. Máte někdo nějakej jinej tip?

Díky

 
Nahoru Odpovědět 22.7.2016 1:07
Avatar
Dog
Člen
Avatar
Dog:22.7.2016 1:31

V každém případě jsou aplikace, které ten log bez problémů čtou a vytahují z něj informace.

 
Nahoru Odpovědět 22.7.2016 1:31
Avatar
Marian Benčat
Redaktor
Avatar
Marian Benčat:22.7.2016 3:50

lol tam nejde o to ze odchytis exceptionu, ale o to, ze ten file descriptor ma otevreny neco jinyho :D pointa je ta, ze bys mel vsechno otevirat jen pro cteni a jen na opravdu super kratkou chvilku to otevrit pro zapis.. jen rychle zapsat a hned zase zavrit soubor a otevrit ho treba pro cteni (pokud potrebujes)

Nahoru Odpovědět 22.7.2016 3:50
"C# 3.0 (2007) volal Java 8 (2014), že chce svoje featury zpět"
Avatar
Odpovídá na Dog
Michal Štěpánek:22.7.2016 6:14

Však jsem to psal

(soubor je využíván jiným procesem).

Nejlepší bude, když si vždycky pro potřeby tvého programu ten log někam zkopíruješ (pak si s tou kopií můžeš dělat co chceš) a až budeš chtít čerstvější data, uděláš si další kopii toho logu...

Nahoru Odpovědět 22.7.2016 6:14
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.