PDA

View Full Version : سوال: محافظت از فایل یا پوشه



sayan
چهارشنبه 13 خرداد 1388, 17:12 عصر
سلام دوستان
چگونه میتوان یک پوشه در مسیر دلخواه گرفت و از آن محافظت کنیم به این صورت که
با اعمال هر تغییر در فایل ها یا فولدرهای این پوشه تغییرات مورد نظر برگشت داده شود.
یعنی فایل یا فولدر مربوط به حالت اول خود برگردانده شود.

با تشکر

esmaeily-hosein
چهارشنبه 13 خرداد 1388, 17:21 عصر
با استفاده از FileSystemWhatcher میتونی یک پوشه رو زیر نظر بگیری .
اگر خواستی بگو طریقه استفاده ازشو بهت بگم.

mahbod
چهارشنبه 13 خرداد 1388, 22:38 عصر
سلام
با FileSystemWatcher مي توني اينكار رو بكني.
فايل رو دانلود كن .

sayan
پنج شنبه 14 خرداد 1388, 02:07 صبح
خیلی ممنون دوستان
من از راهنمایی شما استفاده میکنم و اگه نتونستم دوباره ازتون کمک میگیرم

sayan
پنج شنبه 14 خرداد 1388, 15:49 عصر
خب دوستان من از این کنترل استفاده کردم اما در برنامه میخوام از تغییرات ایجاد شده جلوگیری کنم و نذار هیچ تغییری روی فایل یا پوشه مورد نظر اعمال شود.
در ضمن وقتی که مشخصات فایل یا پوشه را تغییر میدهیم این کنترل هیج عکس العملی نشان نمی دهد.
در حالت کل برنامه من میخواد هر تغییری که بر روی فایل یا پوشه مورد نظر اعمال میشود را خنثی کند و آن فایل یا پوشه را بصورت حالت اولیه خود همیشه حفظ کند.
تشکر

sayan
یک شنبه 17 خرداد 1388, 21:57 عصر
دوستان کسی نیست جواب سوالمو بده؟

sayan
دوشنبه 18 خرداد 1388, 20:32 عصر
نه دیگه مثل اینکه دیگه کسی پاسخگو نیست!

saeed-kh
دوشنبه 18 خرداد 1388, 22:12 عصر
چرا فایل رو قفل یا فقط خواندنی نمیکنید؟
فکر میکنم بتونید ازSystem.IO NameSpaceاستفاده کنید

sayan
سه شنبه 19 خرداد 1388, 02:11 صبح
دوست گرامی منظورم اینه که به هر طریقی نگذاریم هر تغییراتی که در فایل یا پوشه مورد نظر اعمال میشه برنامه ما اون رو خنثی کنه، یعنی اگر اسم فایلی رو دارم تغییر میدم برنامه من جلوی این کارو بگیره،اصلاً نذاره اون فایل یا پوشه تغییر کنه، تابع apiآن findfirstchangenotifiaction تغییرات ایجاد شده را به همراه چند تابع دیگر به ما اطلاع میده ولی من تو خود سی شارپ دنبال این قابلیت می گردم!

salehbagheri
سه شنبه 19 خرداد 1388, 11:00 صبح
حالا در كل نميدونم شما ميخواي چيكار كني!

بعضي چيزها رو ميشه بدون برنامه نويسي يا يه برنامه نويسي ساده حل كرد!

ولي يادمه قديما يه ترفندي بود كه پوشه رو تبديل ميكرد به يه فايل!
يا جلوي نام پوشه يه GUID وارد ميكرديم، پوشه تبديل ميشه به لينك Control Panel!
- مثلا يه پوشه بسازيد و نامش رو به اين نام تغيير بديد:


New Folder.{21EC2020-3AEA-1069-A2DD-08002B30309D}

اين روشي بود كه ميشد پوشه ها رو مخفي كرد!
البته شما ميتونيد از اين روشها استفاده كنيد تا از تغيير فايلهاي درون پوشه جلوگيري كنيد!
سايت Tarfandestan كلي از اين مطالب داره!

esmaeily-hosein
سه شنبه 19 خرداد 1388, 11:15 صبح
با استفاده از روش ذیل میتونی برای فولدرت پسورد بزاری . دوستان اگه کسی راه دور زدنش بلده بگه!
http://www.trap17.com/index.php/best...on_t55662.html

aminM#
سه شنبه 19 خرداد 1388, 17:33 عصر
زرشک:
اول باید بری روی Tools بعد از قسمت Folder Option باید به قسمت View رفت و تیک هیدن سیستمی رو برداشت بعد پوشه به اسم دیگه ای وبه شکل دیگه ای دیده می شه حالا با سه تا صلوات اسم اونو عوض کن و هرچی خواستی بزار حالا بازشکن.

sayan
جمعه 22 خرداد 1388, 17:21 عصر
خب دوستان بحث ها خیلی جالب شد ما با روش های مختلف محفاظت آشنا شدیم ولی منظور اصلی این تاپیک این بود که به هر طریقی شده نذاریم فایل یا پوشه ما تغییر کند چه از لحاظ(تغییر نام، تغییر مشخصات، حذف ، ایجاد و ...)توابع api ایی وجود دارند که این کار رو برای ما انجام می دهند مثل FindFirstChangeNotification و FindNextChangeNotification این کار منو انجام می دهند.

Sajjad1364
جمعه 22 خرداد 1388, 21:06 عصر
با سلام
دوست عزیز فکر کنم کاری که شما میخاین انجام بدین به این سادگی ها نباشه . چون چیزی که مد نظر شماست باید قبل از اعمال تغییرات باشه نه بعدش(FileSystemWacther).این نوع برنامه نوشتن رو باید سیستم عامل برای شما امکان پذیر کنه و اینکه سیستم عامل برنامه نوشته شده از سوی برنامه نویس رو مقدم بر هر اقدامی از سوی خودش بدونه و این نوع پیاده سازی با C++ سروکارداره و واقعا سخت و صد البته نتیجش هم شیرینه.
چیزهایی مشابه خواسته شما رو در مقاله های MSDN دیدم. اما به صورت اتفاقی و خیلی با سیستم عامل تعامل داشت.اگه تو سایت MSDN بگردی شاید پیدا کنی.

sayan
شنبه 23 خرداد 1388, 09:36 صبح
آره دوست من ، اون 2 تابع api که گفتم به محض تغییر در فایل یا پوشه به ما نتیجه را اعلام میکند فکر کنم یه راهش این باشه که ابتدا از اون پوشه یا فایل یک کپی قبل از تغییر داشته باشیم و بعد از تغییر آن را به جای اول خود رونویسی کنیم

13601360
شنبه 23 خرداد 1388, 10:51 صبح
نمی دونم این نمونه برنامه می تون کمکتون کنه یا نه ولی خودم تست کردم

لینک منبع

http://www.codeproject.com/KB/files/Unique_Folder_Protection.aspx

sayan
پنج شنبه 28 خرداد 1388, 18:37 عصر
دوستان یه سوال دیگه.
چطور میشه مانند مدیا پلیر فایلی رو که در حال پخش است و ما اگر بخواهیم از پوشه مورد نظر فایل رو پاک کنیم ویندوز پیغام خطا به ما میده. چطور میتوانیم در سی شارپ برای محفاظت از پاک شدن یک فایل یا پوشه در برنامه مان مانند مدیا پلیر این کار رو انجام بدیم.

adinochestva
پنج شنبه 28 خرداد 1388, 20:36 عصر
media player چون فایل رو باز می کنه لاک میشه و شما نمی تونی اونو دیلیت کنی
شمام یک windows service بنویس که فایلت رو باز نگه داره تا کسی پاکش نکنه !

sayan
دوشنبه 01 تیر 1388, 00:44 صبح
میشه برای پوشه هم این کار کرد که ازش محفاظت شه؟