PDA

View Full Version : قفل کردن فایل text



شهابسلطانی
شنبه 25 اردیبهشت 1395, 20:48 عصر
سلام
من یه فایل تکست دارم که اطلاعات کانکشن توش نوشتم
چطوری میتونم قفلش کنم با کد نویسی؟
ممنون

mrprestige
شنبه 25 اردیبهشت 1395, 21:05 عصر
سلام دوست من شب بخیر ، شما میتونی با این کد فایل Text رو قفلش کنی


FileStream fs = new FileStream(@"C:\1.txt", FileMode.Open, FileAccess.ReadWrite, FileShare.None);


پیروز موفق باشی .

شهابسلطانی
شنبه 25 اردیبهشت 1395, 22:36 عصر
سلام دوست من شب بخیر ، شما میتونی با این کد فایل Text رو قفلش کنی


FileStream fs = new FileStream(@"C:\1.txt", FileMode.Open, FileAccess.ReadWrite, FileShare.None);


پیروز موفق باشی .

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

mrprestige
یک شنبه 26 اردیبهشت 1395, 21:50 عصر
سلام
دوست من ممنون از جواب خوبتون
ولی این کد صرفا برای زمانی کار میکنه که برنامه در حال اجراست
وقتی برنامه متوقف میشه به راختی فایل باز میشه
من کدی میخوام که کلا قایل رو برام قفل کنه
ممنون

سلام دوست من وقتت بخیر ، اول اینکه من فکر کردم فقط تا زمانیکه میخوای برنامه ت در حال اجراست فایل قفل بمونه آره این برنامه این کار رو میکنه . ولی اون چیزی که میخوای یه خورده قضیه ش فرق میکنه
1- برای قفل گذاری ( Encryption) اول یه کلاس ایجاد میکنی در اون این کد رو مینویسی

private void EncryptFile(string inputFile, string outputFile)
{
string password = @"myKey123"; // رمز عبور
UnicodeEncoding UE = new UnicodeEncoding();
byte[] key = UE.GetBytes(password);


string cryptFile = outputFile;
FileStream fsCrypt = new FileStream(cryptFile, FileMode.Create);


RijndaelManaged RMCrypto = new RijndaelManaged();


CryptoStream cs = new CryptoStream(fsCrypt,
RMCrypto.CreateEncryptor(key, key),
CryptoStreamMode.Write);


FileStream fsIn = new FileStream(inputFile, FileMode.Open);


int data;
while ((data = fsIn.ReadByte()) != -1)
cs.WriteByte((byte)data);
fsIn.Close();
cs.Close();
fsCrypt.Close();
}




2- برای رمزگشایی (Decryption) و داخل همون کلاسی که درست کردی این کد رو مینویسی

private void DecryptFile(string inputFile, string outputFile)
{


{
string password = @"myKey123"; // رمز عبور


UnicodeEncoding UE = new UnicodeEncoding();
byte[] key = UE.GetBytes(password);


FileStream fsCrypt = new FileStream(inputFile, FileMode.Open);


RijndaelManaged RMCrypto = new RijndaelManaged();


CryptoStream cs = new CryptoStream(fsCrypt,
RMCrypto.CreateDecryptor(key, key),
CryptoStreamMode.Read);


FileStream fsOut = new FileStream(outputFile, FileMode.Create);


int data;
while ((data = cs.ReadByte()) != -1)
fsOut.WriteByte((byte)data);


fsOut.Close();
cs.Close();
fsCrypt.Close();


}
}




فراخوانی Decryption

DecryptFile("نام فایل.txt", "lمسیر فایل همراه با نام و پسوند");

فراخوانی Encryption

EncryptFile("نام فایل.txt", "lمسیر فایل همراه با نام و پسوند");



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

mehdi.mousavi
دوشنبه 27 اردیبهشت 1395, 06:51 صبح
سلام من یه فایل تکست دارم که اطلاعات کانکشن توش نوشتم چطوری میتونم قفلش کنم با کد نویسی؟ ممنون

سلام.
جایگاه صحیح نگهداری Connection String در یک برنامه، app.config یا web.config هستش. اونجا، شما می تونید کلیه اطلاعات مورد نظرتون رو
در مورد برنامه بصورت XML نگهداری کنید. اگر اینکارو کنید، در اینصورت ابزاهایی وجود داره که به شما اجازه Encrypt کردن بخش های مورد نظرتون
رو در Config میده. لطفا برای اطلاعات بیشتر به این مطلب (https://msdn.microsoft.com/en-us/library/53tyfkaw%28v=vs.110%29.aspx) مراجعه کنید.

موفق باشید.