PDA

View Full Version : استفاده از فایل های موجود در یک پوشه که در پوشه Resources برنامه قرار داده شده



sara_aryanfar
دوشنبه 15 آبان 1391, 08:45 صبح
با سلام خدمت دوستان من تعدادی عکس در یک پوشه دارم به نام ocr که از اون ها به صورت زیر استفاده می کنم و اونا رو فراخوانی می کنم
string[] filePaths = Directory.GetFiles(@"C:\OCR\");

foreach (string f in filePaths)
{
//call some function to get all files in folder
Bitmap pat = new Bitmap(@"" + f);

}

این کد برای زمانی هست که پوشه من در درایو سی قرار دارد حالا که من پوشه ocr رو به فولدر ریسورس منتقل کردم چطوری باید در خط زیر آدرس دهی کنم ؟
string[] filePaths = Directory.GetFiles(@"C:\OCR\");

ممنون از راهنمایی دوستان

danialafshari
دوشنبه 15 آبان 1391, 10:03 صبح
سلام
اول فایل رو در یک جایی از سیستم کپی می کنید بعد از اون استفاده می کنید
using System.IO;
File.WriteAllBytes(Path.GetTempPath() + @"نام فایل+پسوند برای ذخیره", Properties.Resources.نام فایل رسورس شده);
بعد از ذخیره به صورت معمولی در برنامه فراخوانی می کنی
موفق باشی

sara_aryanfar
دوشنبه 15 آبان 1391, 16:16 عصر
تعداد فایل ها خیلی زیاد هست و من باید داخل یک حلقه اونا رو بیرون بکشم چطوری میشه به نام تک تک فایل هایی که در اون پوشه هست دسترسی پیدا کرد

nilmil_nil
دوشنبه 15 آبان 1391, 18:36 عصر
فایل های پوشه ریسورس با EXE کامپایل میشن و توی فایل اجرایی جا داده میشن
اگه فایل هات توی Resource هست باید از دستور زیر برای دسترسی بهشون استفاده کنید

pictureBox1.Image = TestProjectForAll.Properties.Resources._3539933484 13910808105630;

و در غیر اینصورت باید یه پوشه تو پوشه dEBUG به اسم Resource بسازین و پوشه Ocr رو توی اون کپی کنید
حالا با دستور Application .startuoPath بهش دسترسی پیدا کنین
امید وارم منظورتون رو درست متوجه شده باشم

sara_aryanfar
دوشنبه 15 آبان 1391, 22:59 عصر
ببینید من وقتی پوشه داخل یک درایو به صورت عادی قرار داره با دستور زیر می تونم تمام تصاویر موجود در پوشه ocr رو واکشی کنم
string[] filePaths = Directory.GetFiles(@"C:\OCR\");

foreach (string f in filePaths)
{
//call some function to get all files in folder
Bitmap pat = new Bitmap(@"" + f);

}


حالا بحث من اینه که وقتی این پوشه ocr رو به فولدر ریسورس منتقل می کنم چطوری به همه فایل ها دسترسی داشته باشم یعنی دوباره بتونم با یه حلقه همه تصاویر رو واکشی کنم

morteza271
دوشنبه 15 آبان 1391, 23:08 عصر
اینه که وقتی این پوشه ocr رو به فولدر ریسورس منتقل می کنم چطوری به همه فایل ها دسترسی داشته باشم یعنی دوباره بتونم با یه حلقه همه تصاویر رو واکشی کنم
تا جایی که من میدونم وقتی شما فایل ها رو به Resource اضافه کرده باشین نمیتونید لیست همه ی اونا رو داشته باشین تا با یه حلقه اونا رو واکشی کنید و فقط میتونید با نام اون فایل ها بهشون دسترسی داشته باشید.
ولی همونطور که بقیه دوستان هم گفتن میتونید این پوشه رو در کنار برنامه (فایل exe) کپی کنید و بعد با استفاده از همون کدی که گذاشتین فایل ها رو واکشی کنید...
موفق باشید

sara_aryanfar
سه شنبه 16 آبان 1391, 00:39 صبح
خب من می خوام مانع از دسترسی کاربر به این پوشه بشم یعنی از محتویات این پوشه محافظت کنم برا همین هم ریسورس می کنم اگر به صورت پوشه معمولی قرار بدم که محافظت نمیشه

danialafshari
سه شنبه 16 آبان 1391, 10:49 صبح
خب من می خوام مانع از دسترسی کاربر به این پوشه بشم یعنی از محتویات این پوشه محافظت کنم برا همین هم ریسورس می کنم اگر به صورت پوشه معمولی قرار بدم که محافظت نمیشه

تا اونجایی که من میدونم برای استفاده از محتویات Resource باید اونها رو در یک قسمتی از سیستم کپی کنید
شما می تونید در هنگام Load برنامه اونها رو در یک قسمتی از حافظه کپی و مخفی کنید و بعد از خروج از برنامه اونها رو پاک کنید
موفق باشی

morteza271
سه شنبه 16 آبان 1391, 11:08 صبح
خب من می خوام مانع از دسترسی کاربر به این پوشه بشم یعنی از محتویات این پوشه محافظت کنم برا همین هم ریسورس می کنم اگر به صورت پوشه معمولی قرار بدم که محافظت نمیشه

اگه تعداد فایل ها و خود فایلهاتون ثابته به نظرم توی همون Resource ذخیره کنید و با استفاده از نام آنها اونا رو واکشی کنید. من خودم هم قبلا این کار رو کردم ولی چون تعداد فایل هام زیاد نبود از این روش استفاده کردم و در Resource ذخیره کردم ئ گرنه خیلی دنبال بودم که بتونم لیست همشون رو بدست بیارم ولی نشد که نشد!!!
موفق باشید

sara_aryanfar
سه شنبه 16 آبان 1391, 13:36 عصر
تا اونجایی که من میدونم برای استفاده از محتویات Resource باید اونها رو در یک قسمتی از سیستم کپی کنید
شما می تونید در هنگام Load برنامه اونها رو در یک قسمتی از حافظه کپی و مخفی کنید و بعد از خروج از برنامه اونها رو پاک کنید
موفق باشی

این امکان رو داریم که در هنگام لود فرم کل پوشه ocr که حاوی تصاویر ما هست رو در مثلا درایو سی قرار بدیم و در رویداد بستن فرم اون پوشه رو کلا حذف کنیم اگر بله چطوری با چه کدی ممنون