ألا يمكن أبدًا الحصول على اسم FullName من ملف باستخدام Silverlight OpenFileDialog؟

StackOverflow https://stackoverflow.com/questions/1378902

سؤال

أرغب في الحصول على اسم Fullname من ملف على Silverlight OpenFileDialog ، عندما أحاول ذلك ، يلقي لي Silverlight خطأً.

لقد رأيت أن هناك سمة على اسم FullName تقول إنها [حرج الأمن] ، لكنني بحاجة إلى عرض المسار الكامل ، هل هو في الحقيقة لا يمكنني فعل ذلك؟

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

المحلول

لن يوفر OpenFileDialog الاسم الكامل ببساطة لأنه لا يريد منك تغيير تلك الملفات. مع Silverlight ، يمكنك الوصول فقط إلى التخزين المعزول ويمكن أن يكون الملف خارج هذا التخزين. لكن يمكنك فقط افتح الملف ونسخه إلى التخزين المعزول ، وتعديله هناك.
اكتشف ذلك للتو صديق باس وجدت هذا الرابط أيضا ونشره أعلاه. غلطتي. ثم مرة أخرى ، يكون الرابط في أعلى 20 من Google. :-)

سبب آخر لأنك لن تحصل على اسم الملف الكامل هو أن اسم الملف يمكن أن يحتوي على معلومات حساسة. على سبيل المثال ، يمكن لملف في مجلد "المستندات" أن يعرض اسم تسجيل الدخول إلى المستخدم.

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

نصائح أخرى

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

حاول استخدام خاصية الملف كما هو موثق هنا:مثال, MSDN

يتصرف Silverlight OpenFileDialog بشكل مختلف بالأشكال القياسية لـ OFD لأسباب أمنية. إذا قمت باسترداد FEREFILE ، فإنه يعيد فعليًا filedialogfileinfo الكائن الذي يحتوي على اسم من الملف ، بدلاً من مسار إلى الملف. عندما تفكر في الأمر ، هذا أمر منطقي تمامًا - فأنت لا تريد أن يكتب شخص ما قطعة من الكود الضار الذي يمكن أن يحصل على مقبض في نظام الملفات الخاص بك.

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