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

تم تحميل الصفحة في 0,7871918 ثانية
طريقة تخزين واستخراج البايتات من الريسورس في السي شارب
الحالة
مغلق و غير مفتوح للمزيد من الردود.
إنضم
27 يناير 2018
المشاركات
438
الإعجابات
375
النقاط
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
المشاركات
438
الإعجابات
375
النقاط
63
اها وجدت البايتات في الملف لكن قبلها شيء مثل بداية أو هيدر للريسورس
هل فيه طريقة لاستخراجه بدون هذا الهيدر
 

H O U D I N I

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

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

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

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

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

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

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

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