تمت الإجابة طريقة تخزين واستخراج البايتات من الريسورس في السي شارب

تم تحميل الصفحة في 1,6241491 ثانية
طريقة تخزين واستخراج البايتات من الريسورس في السي شارب
الحالة
مغلق و غير مفتوح للمزيد من الردود.
إنضم
27 يناير 2018
المشاركات
535
الإعجابات
458
النقاط
63
كتبت هذا الكود لتخزين بايتات ملف في ريسورس

C#:
byte[] rat = File.ReadAllBytes("D:\\drive2\\nj\\Server.exe");
ResXResourceWriter reswrite = new ResXResourceWriter("resx.resx");
reswrite.AddResource("binary", rat);
reswrite.Close();
بعدها قمت بعمل كومبايل للريسورس عن طريق ResGen.exe
Bash:
ResGen.exe resx.resx
ثم قمت بإضافة الريسورس الناتج إلي ملف السي شارب عند عمل الكومبايل هكذا
Bash:
csc.exe /target:winexe program.cs /resource:resx.resources
وأخيرا في ملف السي شارب يوجد هذا الكود للحصول علي البايتات من الريسورس

C#:
var resourecs = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
foreach(var res in resourecs)
{
  MessageBox.Show("resource : " + res);
  var res_stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(res);
  File.WriteAllBytes("out" + res, ReadFully(res_stream));
}

public static byte[] ReadFully(Stream input)
{
  byte[] buffer = new byte[16 * 1024];
  using (MemoryStream ms = new MemoryStream())
  {
  int read;
  while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
  {
    ms.Write(buffer, 0, read);
  }
  return ms.ToArray();
  }
}
ولكن الملف الناتج لا يحتوي علي نفس البيانات التي خزنتها في الريسورس
 
إنضم
27 يناير 2018
المشاركات
535
الإعجابات
458
النقاط
63
اها وجدت البايتات في الملف لكن قبلها شيء مثل بداية أو هيدر للريسورس
هل فيه طريقة لاستخراجه بدون هذا الهيدر
 

H O U D I N I

.:: Legends DeveloPer ::.
rankrankrankrankrankrank
إنضم
14 أغسطس 2010
المشاركات
5,144
الإعجابات
8,033
النقاط
113
الإقامة
الجزائر
لا ادري كثيرا ب c#
لاكن يبدوا انك استعملت طريقة كتابة تختلف عل طريقة القرائة

ادا استعملت ResXResourceWriter
فالافضل تستعمل ResXResourceReader او ماشابه حتى يحصل توافق بالكود
 
إنضم
27 يناير 2018
المشاركات
535
الإعجابات
458
النقاط
63
لا ادري كثيرا ب c#
لاكن يبدوا انك استعملت طريقة كتابة تختلف عل طريقة القرائة

ادا استعملت ResXResourceWriter
فالافضل تستعمل ResXResourceReader او ماشابه حتى يحصل توافق بالكود
ولا أنا لدي خبرة بالسي شارب لكن مضطر لأن clrhost بها مشاكل

عموما انتهيت باستخدام System.Resources.ResourceManager
 

Mariio

.:: مُراقب أقسام البرمجة ::.
rankrankrankrankrankrank
طاقم الإدارة
إنضم
1 مايو 2007
المشاركات
4,559
الإعجابات
3,918
النقاط
133
الإقامة
USA
ولا أنا لدي خبرة بالسي شارب لكن مضطر لأن clrhost بها مشاكل

عموما انتهيت باستخدام System.Resources.ResourceManager
يرجى اختيار افضل اجابة اذا تم حل المشكله
 
الحالة
مغلق و غير مفتوح للمزيد من الردود.

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل