سؤال

لدي برنامج حيث أستخدم نموذج Windows، في هذا النموذج، أستخدم OpenFileDialog حيث أفتح ملف في بعض الدليل. ثم استخدمت في وظيفة مختلفة StreamReader ولدي ملف ثنائي في دليل My Big / Debug الذي أريد فتح StreamReader. ولكن لسبب ما بعد فتح الملف الأول باستخدام OpenFileDialog يبحث StreamReader عن الملف الثاني في هذا الدليل بدلا من ذلك في BIN / Debug كالمعتاد.

هل يعرف أحد لماذا يفعل ذلك وكيف يمكنني حلها؟

شكرا مقدما،

جريج

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

المحلول

ال OpenFileDialog لديه هذا السلوك؛ يغير الدليل الحالي للتطبيق. لمنع هذا من يحدث، يمكنك استخدام RestoreDirectory خاصية OpenFileDialog.

نصائح أخرى

عند تغيير الدليل في مربع حوار ملف مفتوح، يؤدي ذلك أيضا إلى تغيير دليل عمل التطبيق الخاص بك. لذلك إذا كنت تحاول استخدام المسارات النسبية، فسوف ننظر في المكان الخطأ.

الحل هو restoredirectory..

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

إذا كنت ترغب في الوصول إلى ملف في مكان ما بغض النظر عما تم ضبط الدليل الحالي عليه، فعليك تحديد مسار كامل لذلك. يمكنك استخدام Application.StartupPath للحصول على المسار إلى المجلد الذي يكون فيه البرنامج.

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