PDA

View Full Version : سوال: عدم دسترسی به فولدر برنامه ام در سیستمی دیگر



Apache66
دوشنبه 01 مهر 1392, 09:16 صبح
سلام
کنار پروژم یک فولدر دارم که مقدار زیادی عکس داخل این فولدر هست که در برنامه از آنها استفاده میکنم
حالا میخوام طوری بشه که این فولدر توی سیستم مشتری قابل دسترس یا قابل مشاهده نباشه و در حین حال بتونم در برنامه ام استفاده کنم ازشون
چه راهکاری پیشنهاد میدید؟

fjm11100
دوشنبه 01 مهر 1392, 10:41 صبح
نمیتونی عکسها را جداگانه دسته بندی کنی و توی فایلهای dll جداگانه بزاری؟

مهدی رحیم زاده
دوشنبه 01 مهر 1392, 10:48 صبح
با سلام خدمت شما دوست عزیز
اگر عکس های این فولدر ثابت هستن ، میتونید عکس ها رو توی resorce هم ذخیره کنید . اینجوری موقع کامپایل دیگه اون فولدر دیده نمشه اما شما میتونید از عکس هاش استفاده کنید.
موفق و پیروز باشید

Apache66
سه شنبه 02 مهر 1392, 19:26 عصر
عکس ها هم ثابت هم قابل دسته بندی هستن
کدوم روش بهتر و مطمئن تر هست؟

aliagamon
سه شنبه 02 مهر 1392, 19:44 عصر
یکی از راه ها افزوردن به ریسورس ها هست ... و دومی هم اینه که شما عکس هارو encrypt کنید و هرموقع خواستین decrypt کنین .... و استفاده کنید

Apache66
سه شنبه 02 مهر 1392, 19:47 عصر
آموزش encrypt و decrypt عکس رو میتونید بهم بگید؟

aliagamon
سه شنبه 02 مهر 1392, 19:50 عصر
این دو تابع کارتو راه میندازه میتونی فرایند اون وسط رو پیچیده تر هم بکنی ....

private void EncryptFile()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif";
dialog.InitialDirectory = @"C:\";
dialog.Title = "Please select an image file to encrypt.";
byte[] ImageBytes;
if (dialog.ShowDialog() == DialogResult.OK)
{
ImageBytes = File.ReadAllBytes(dialog.FileName);

for (int i = 0; i < ImageBytes.Length; i++)
{
ImageBytes[i] = (byte)(ImageBytes[i] + 5);
}

File.WriteAllBytes(dialog.FileName, ImageBytes);
}
}

private void DecryptFile()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif";
dialog.InitialDirectory = @"C:\";
dialog.Title = "Please select an image file to decrypt.";
byte[] ImageBytes;
if (dialog.ShowDialog() == DialogResult.OK)
{
ImageBytes = File.ReadAllBytes(dialog.FileName);

for (int i = 0; i < ImageBytes.Length; i++)
{
ImageBytes[i] = (byte)( ImageBytes[i] - 5);
}

File.WriteAllBytes(dialog.FileName, ImageBytes);
}
}

Apache66
سه شنبه 02 مهر 1392, 20:16 عصر
File.ReadAllBytes(dialog.FileName); خط 10
رو چطوری فعالش کنم؟

aliagamon
سه شنبه 02 مهر 1392, 20:24 عصر
از io استفاده کنید:

using System.IO;

مهدی رحیم زاده
چهارشنبه 03 مهر 1392, 07:31 صبح
عکس هارو encrypt کنید و هرموقع خواستین decrypt کنین
با این کار پردازش های زیاد و سربار برای سیستم ایجاد نمیشه؟

rezaei_y
چهارشنبه 03 مهر 1392, 07:48 صبح
از resources استفاده کن

aliagamon
چهارشنبه 03 مهر 1392, 16:21 عصر
با این کار پردازش های زیاد و سربار برای سیستم ایجاد نمیشه؟
برای عکس های حجیم حرف شما درست ....:لبخند:(حجیم مثلا 5 مگی ) اما عکس هایی که چند کیلوبایت هستند دیگه مشکل خاصی به وجود نمیاره ...
البته شما بهتر باید بدونید ..... و اگه اینطور میگین حتما مناسب نیست ... اما اخه من برای یک پروژه (انتقال اطلاعات با encrypt چند مرحله ای ) انجام دادم و خیلی هم خوب جواب داد و مثلا 500 600 تا فایل رو با 15 thread ارسال میکردم و نه به سیستم فرستنده فشار میومد نه گیرنده....سرعتش هم خوب بود ...
البته ممکنه به درد این پروژه نخوره ... به هرجال من هم اولین موردی که گفتم ریسسورس بود:لبخند:

Apache66
چهارشنبه 01 آبان 1392, 14:52 عصر
این دو تابع کارتو راه میندازه میتونی فرایند اون وسط رو پیچیده تر هم بکنی ....

private void EncryptFile()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif";
dialog.InitialDirectory = @"C:\";
dialog.Title = "Please select an image file to encrypt.";
byte[] ImageBytes;
if (dialog.ShowDialog() == DialogResult.OK)
{
ImageBytes = File.ReadAllBytes(dialog.FileName);

for (int i = 0; i < ImageBytes.Length; i++)
{
ImageBytes[i] = (byte)(ImageBytes[i] + 5);
}

File.WriteAllBytes(dialog.FileName, ImageBytes);
}
}

private void DecryptFile()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif";
dialog.InitialDirectory = @"C:\";
dialog.Title = "Please select an image file to decrypt.";
byte[] ImageBytes;
if (dialog.ShowDialog() == DialogResult.OK)
{
ImageBytes = File.ReadAllBytes(dialog.FileName);

for (int i = 0; i < ImageBytes.Length; i++)
{
ImageBytes[i] = (byte)( ImageBytes[i] - 5);
}

File.WriteAllBytes(dialog.FileName, ImageBytes);
}
}



من وقتی برنامه ام بسته میشه عکسام رو کد میکنم و وقتی باز میشه دیکدشون میکنم
مشکل الان اینجا دارم که وقتی برنامه باز میشه خب عکسهایم قابل دیدن میشه که من نمیخوام این اتفاق بیوفته چه راهکاری هست؟