PDA

View Full Version : سوال: ارسال پیام ناشی از تغییر در یک فایل txt



behnam.m
جمعه 14 مرداد 1390, 13:55 عصر
سلام
چطور می تونم تغییرات که در یک فایل txt رخ می دهد متوجه بشم ؟ البته با FileSystemWatcher خواستم اینکار انجام بدم ولی نشد ؟
لطفا کمک کنید....

Farshid007
جمعه 14 مرداد 1390, 14:08 عصر
متن فایل txt رو می خوای یا ویژگی ها از قبیل FileAtrtibtle یا Read onlyو...

behnam.m
جمعه 14 مرداد 1390, 14:21 عصر
متن فایل txt رو می خوای یا ویژگی ها از قبیل FileAtrtibtle یا Read onlyو...

نه ... من می خوام هر تغییری که در نوشته فایل txt رخ می دهد را فقط اعلام کند جواب true , false کفایت می کند..

Farshid007
جمعه 14 مرداد 1390, 14:38 عصر
با تایمر هر لحضه اونو بخون و با هر چیزی که می خوای مقایسش کن
اینجوری تغغیرات بدست می اد

Felony
جمعه 14 مرداد 1390, 18:35 عصر
سلام
چطور می تونم تغییرات که در یک فایل txt رخ می دهد متوجه بشم ؟ البته با FileSystemWatcher خواستم اینکار انجام بدم ولی نشد ؟
لطفا کمک کنید....
چرا نشد ؟

یک FileSystemWatcher تو برنامه قرار بدید و خاصیت NotifyFilter رو با LastWrite و خصیصه Path رو با آدرس فایل مورد نظر مقدار دهی کنید .

* دقت کنید که نمیتونید نام فایل رو به خصوصیت Path بدید چون FileSystemWatcher یک پوشه رو تحت نظر میگیره نه فایل ، برای اینکه فقط در زمان تغییر فایل مورد نظر شما عملیات مورد نظر انجام بشه یا یک شرط ساده میتونید بررسی کنید که فایل تغییر پیدا کرده فایل مورد نظر شما هست یا نه .

مثلا برای بررسی اینکه فایل Text.txt در درایو D تغییر کرده خصوصیت Path رو با \:D مقار دهی میکنیم و کد زیر رو در رویداد Change شئ FileSystemWatcher مورد نظر مینویسیم :

if (e.FullPath == @"D:\Test.txt")
MessageBox.Show(e.FullPath);

موفق باشید .

danialafshari
یک شنبه 24 اردیبهشت 1391, 19:47 عصر
چرا نشد ؟

یک FileSystemWatcher تو برنامه قرار بدید و خاصیت NotifyFilter رو با LastWrite و خصیصه Path رو با آدرس فایل مورد نظر مقدار دهی کنید .

* دقت کنید که نمیتونید نام فایل رو به خصوصیت Path بدید چون FileSystemWatcher یک پوشه رو تحت نظر میگیره نه فایل ، برای اینکه فقط در زمان تغییر فایل مورد نظر شما عملیات مورد نظر انجام بشه یا یک شرط ساده میتونید بررسی کنید که فایل تغییر پیدا کرده فایل مورد نظر شما هست یا نه .

مثلا برای بررسی اینکه فایل Text.txt در درایو D تغییر کرده خصوصیت Path رو با \:D مقار دهی میکنیم و کد زیر رو در رویداد Change شئ FileSystemWatcher مورد نظر مینویسیم :

if (e.FullPath == @"D:\Test.txt")
MessageBox.Show(e.FullPath);

موفق باشید .
ذوست عزیز جواب نداد

arefba
دوشنبه 25 اردیبهشت 1391, 01:29 صبح
از thread ها استفاده کن
اونا می تونن بدون اینکه برنامه اصلی دچار مشکل شه برن و یه کاری رو انجام بدن