PDA

View Full Version : مخفی کردن فایل های موجود در یک پوشه



Iman7228
چهارشنبه 04 مرداد 1391, 01:52 صبح
سلام خدمت اساتید.

من یه تیکه برنامه رو با استفاده از کدهای موجود در همین سایت نوشتم...

منتها یه مشکلی هست...

این برنامه قابلیت اینو داره که بتونه فایلها رو مخفی کنه و مجددا از حالت مخفی دربیاره...

مشکل من اینجاست که من میخوام، یکسری فایل ها به صورت دسته جمعی مخفی و غیرمخفی بشن...

یعنی وقتی کاربر با استفاده از folderBrowserDialog پوشه ای رو مشخص کرد، محتویات موجودد در پوشه به صورت مخفی دربیاد، یا اینکه اگه مخفی بود، از حالت مخفی دربیاد...

پ.ن 1 : در اینجا منظور از مخفی، همان حالت Super Hidden هست...
پ.ن 2 : یک Progressbar هم در برنامه وجود داره که باید همزمان با تغییر خاصیت فایل(فایل ها) حرکت کنه...

اینم سورس برنامه :

از سایت مدیا فایر (http://www.mediafire.com/?m88ksuqckprikhl)

در ضمیمه هم موجوده

پیشاپیش باتشکر از راهنماییتون

ali_habibi1384
چهارشنبه 04 مرداد 1391, 03:36 صبح
اگر ميخواي يك پوشه رو بصورت سيستمي مخفي كني از اين كد استفاده كن:


// Get Application start up path
string path = Application.StartupPath;
// Create Batch File Path
string filePath = path + "\\Hide.bat";
// Write syntex to write in BAtch File
string strToWrite = "attrib +h +s " + '"' + path + '"';
// Create Batch File
FileStream fs = new FileStream(filePath, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(strToWrite);
sw.Close();
fs.Close();

ali_habibi1384
چهارشنبه 04 مرداد 1391, 03:39 صبح
اگر ميخواي يك پوشه رو بصورت سيستمي مخفي كني از اين كد استفاده كن:


// Get Application start up path
string path = Application.StartupPath;
// Create Batch File Path
string filePath = path + "\\Hide.bat";
// Write syntex to write in BAtch File
string strToWrite = "attrib +h +s " + '"' + path + '"';
// Create Batch File
FileStream fs = new FileStream(filePath, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(strToWrite);
sw.Close();
fs.Close();

اين نمونه هم يه تست كن :


DirectoryInfo di = new DirectoryInfo(@"C:\Test");
di.Attributes = FileAttributes.Hidden;

Iman7228
چهارشنبه 04 مرداد 1391, 12:15 عصر
با تشکر از شما .
من برای مخفی کردن به صورت سیستمی و با استفاده از folderBrowserDialog از کد زیر استفاده کردم و جواب گرفتم...



private void button1_Click(object sender, EventArgs e)
{

FolderBrowserDialog k = new FolderBrowserDialog();
if (k.ShowDialog() == DialogResult.OK)
{
d = k.SelectedPath;
}
}

private void button2_Click(object sender, EventArgs e)
{
try
{
DirectoryInfo di = new DirectoryInfo(d);
di.Attributes = FileAttributes.System ^ FileAttributes.Hidden;
MessageBox.Show("Succefull to Hidden Folder", "Message");
}
catch
{
MessageBox.Show("Please Show a Folder first", "Message");
}

}


بازم یه مشکل دارم.. و اونم اینه که وقتی درایوی رو انتخاب می کنیم، نمیشه فایلها و پوشه های موجود در درایو رو مخفی کرد، یعنی حتما باید یه پوشه انتخاب بشه...

برای این چه راهی پیشنهاد می کنید؟؟؟

ali_habibi1384
چهارشنبه 04 مرداد 1391, 17:20 عصر
قالب كلي براي تغيير Attribute فايل كه شما ميخواي از مخفي اون استفاده كني بصورت ذيل است:


// clear all file attributes
File.SetAttributes(filePath, FileAttributes.Normal);

// set just only archive and read only attributes (no other attribute will set)
File.SetAttributes(filePath, FileAttributes.Archive |
FileAttributes.ReadOnly);

ali_habibi1384
چهارشنبه 04 مرداد 1391, 17:22 عصر
اگر انگليسيت هم خوبه به اين رفرنس انگليسي (http://www.devcurry.com/2009/08/hiding-file-using-c-and-vbnet.html) يه سر بزن .خيلي كامله

Iman7228
چهارشنبه 04 مرداد 1391, 17:32 عصر
من با اینا مشکلی ندارم...

تنها مشکلم اینه که الان دقیقا نمیتونم، هرفایل و پوشه ای که تو یک درایو هست رو مخفی کنم یا از حالت مخفی دربیارم...

یعنی توسط folderBrowserDialog یک درایو رو انتخاب کنم،بعدش وقتی دکمه مخفی رو زدم، تموم فایل ها و پوشه های موجود در اون درایو انتخاب شده، مخفی بشه و یا بالعکس...

یه چیزی مثل دستور زیر در داس :




j: Enter

j: attrib -h -s /d /s *.*