سؤال

UnhandledException: System.ComponentModel.Win32Exception: No application is associated with the specified file for this operation
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(String fileName)

مرحباً جميعاً،

أحصل على الاستثناء التالي على جهاز واحد أقوم باختباره عند محاولة استخدام Process.Start لفتح ملف .csv. أعتقد أن هذا يحدث لأنه لم يتم تعيين أي جمعية للملفات لملفات .csv في هذا المربع.

فكيف يمكنك تجنب هذا الموقف؟

إجبار العملية على فتح في المفكرة؟ - من الناحية المثالية ، يجب فتحه في Excel ، ولكن ماذا تفعل إذا لم يكن موجودًا على هذا الكمبيوتر؟

شكرًا

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

المحلول

إذا كان تطبيقك يعتمد على تثبيت Excel للعمل بشكل صحيح وفعال ، فاحرص المستخدم على ذلك. التقط الاستثناء ، وأطفأ إشعارًا لإخبارهم بالمشكلة ، ولكن في هذا الإخطار ، أعطهم خيارًا لفتحه في محرر بديل مثل Notepad.

كل هذا يتلخص في Good UX - أخبر المستخدم ، ولكن قم بذلك بطريقة تمكّنها من خلال تقديم خيارات للمتابعة ، بدلاً من مجرد الوصول إلى طريقهم والتوقف عند حدوث مشكلة صغيرة مثل ذلك.

تعديل: افعل ما تفعله بالضبط - لا تفترض أن لديهم Excel ، فقد يكون لديهم بعض المشاهد/المحرر الآخرين مثل OpenOffice. كل ما هو مسجل في CSV ، دعها تفعل الأمر. لا تحاول الذهاب والتحقق من جمعية الملفات بنفسك ، قد لا يكون للتطبيق (ربما لن) امتيازات كافية للتجول في السجل.

تحتاج أيضًا إلى التحقق من أسباب واضحة أخرى للاستثناءات ، مثل أن المستخدم ليس لديه حقوق لفتح الملف المستهدف ، فقد يكون ذلك بسبب القيود المفروضة على المجلد أو الملف نفسه. ربما يتم قفل الملف لأنه لا يزال مفتوحًا في عملية أخرى. هناك مجموعة من الأسباب التي تجعل عمليةك. قد تفشل.

التمسك بالاستثناء ، وإذا كان السبب لا يوجد تطبيق مرتبط بالملف ، فاعرض عليهم الخيار. إذا اختار المستخدم استخدام المفكرة ، فحاول فتح الملف في Notepad ، ولكن لا يزال يراقب الاستثناءات. يعد Notepad خيارًا جيدًا ، ولا يحمل قفلًا على الملف ، لكنه لا يزال خاضعًا لمجلس ACL/File.

نصائح أخرى

إذا قمت بتعيين ProcessStartInfo.Errordialog = TRUE ، فسيكون المستخدم موجهًا مع مربع حوار Windows قياسي: انظر هنا

اقرأ السجل لمعرفة ما إذا كان هناك برنامج مرتبط بملحق الملف قبل القيام بعملية. بدء التشغيل. إنظر في HKEY_CLASSES_ROOT\.csv لمعرفة من هو المسجل للتعامل مع ملحق الملف ، إن وجد.

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