View Full Version : سوال: کپی فایل و فولدر به همراه سطح دسترسی NTFS
robat7
پنج شنبه 25 آبان 1391, 01:21 صبح
سلام دوستان
من می خواهم برنامه ای بنویسم که فایلها و فولدر ها را از یک درایو به درایو دیگر به همراه سطح دسترسی NTFS کپی نماید
چطور می توانم سطح دسترس را برای فایل و فولدر بخوانم و در مقصد اعمال نمایم
با تشکر
mehdi.mousavi
پنج شنبه 25 آبان 1391, 08:08 صبح
سلام دوستان چطور می توانم سطح دسترس را برای فایل و فولدر بخوانم و در مقصد اعمال نمایم با تشکر
سلام.
شما می تونید با استفاده از دو متود GetAccessControl (http://msdn.microsoft.com/en-us/library/8e1fc3b8.aspx) و SetAccessControl (http://msdn.microsoft.com/en-us/library/system.io.file.setaccesscontrol.aspx) از کلاس File، به هدفتون برسید.
موفق باشید.
robat7
پنج شنبه 25 آبان 1391, 20:52 عصر
سلام و با تشکر
برای دوستانی که بدنبال کد برنامه هستند.
using System.IO;
using System.Security.AccessControl;
using System.Security.Principal;
private void SetPermissions(string fileNameSource, string fileNameTarget)
{
AuthorizationRuleCollection rules;
//DirectorySecurity dirSec = Directory.GetAccessControl(fileNameSource);
//// Gets the list of all access-rules of the specified folder.
//rules = dirSec.GetAccessRules(true, true, typeof(NTAccount));
FileSecurity fileSec = File.GetAccessControl(fileNameSource);
rules = fileSec.GetAccessRules(true, true, typeof(NTAccount));
// Enumerates all access rules set on the specified folder.
foreach (FileSystemAccessRule rule in rules)
{
//MessageBox.Show("Identity: {4}\nType: {0}\nRights {1}\nPropagation Flags: {2}\nInherited: {3}" +
//"\n\r" + rule.AccessControlType +
//"\n\r" + rule.FileSystemRights +
//"\n\r" + rule.PropagationFlags +
//"\n\r" + rule.IsInherited +
//"\n\r" + rule.IdentityReference);
// Get a FileSecurity object that represents the // current security settings.
FileSecurity fSecurity = File.GetAccessControl(fileNameTarget);
string account = rule.IdentityReference.ToString().Trim();
// Add the FileSystemAccessRule to the security settings.
fSecurity.AddAccessRule(new FileSystemAccessRule(account,
rule.FileSystemRights, rule.AccessControlType));
// Set the new access settings.
File.SetAccessControl(fileNameTarget, fSecurity);
}
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.