سؤال

لدي تطبيق winforms الذي يقوم بتخزين محتويات الملفات في قاعدة البيانات.يمكن أن تكون الملفات المخزنة من أي نوع تقريبًا (Word، Excel، PDF، text، image ...) ويمكن للمستخدم تحديد أي نوع من الملفات لتحميلها.

يمكن للمستخدم بعد ذلك الاستعلام عن قاعدة البيانات والعثور على ملف ثم فتحه.

ليس لدي أي مشاكل في استخراج مصفوفة البايت من قاعدة البيانات، إما كدفق أو مصفوفة بايت.

من الناحية المثالية، سأكون قادرًا على عرض الملف مباشرةً من مصفوفة بايت أو دفق؛أقوم حاليًا بحفظه كملف مؤقت ثم فتحه باستخدام:

Process.Start(fileName);

كيف يمكنني عرض الملف مع التطبيق المرتبط إما من أي من مصفوفة البايت أو ملف الدفق؟

هل كانت مفيدة؟

المحلول

في النوافذ، لديك الخيار الوحيد هو أن تفعل بالضبط ما تفعلونه. توقعات، إنترنت إكسبلورر، فايرفوكس، ونفعل كل هذا

نصائح أخرى

وربما تريد للبحث قليلا في الذاكرة الملف المعين.

ويمكنك محاولة لفتح الدليل الذي يحتوي على ذلك، ولكن سيكون نفس الشيء تقوم به في الوقت الراهن .. إذا كان من المعروف التطبيق يرتبط بها من نظام التشغيل، ثم لن تكون هناك مشكلة ..

إذا قمت بتخزين اسم ملف في قاعدة البيانات مع تدفق البايت، فيمكنك تحديد نوع الملف من الامتداد.هناك خياران في هذه الحالة:

  1. استخدم السجل لتحديد التطبيق الذي سيتم استخدامه.لمزيد من المعلومات حول هذا، قم بإلقاء نظرة على هذه المحادثة على bytes.com.
  2. ف/استدعاء SHGetFileInfo لتحديد التطبيق الذي سيتم استخدامه.

ملحوظة: مع كلا الخيارين، ستظل بحاجة إلى كتابة بيانات الملف إلى ملف مؤقت على القرص لتحميله.

شخصيًا، أعتقد أن ما تفعله ربما يكون الخيار الأسهل، على أي حال (إلا إذا كنت ترغب في توفير مشاهدين مخصصين لأنواع معينة من الملفات، وما إلى ذلك)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top