سؤال

في NET هو هناك وظيفة الذي يختبر ما إذا كان السلسلة نحويا المسار الصحيح؟ أنا على وجه التحديد لا نريد لاختبار إذا كان المسار موجود بالفعل.

وقطتي الحالي على هذا هو التعبير المعتاد:

([a-zA-Z]:|\\)?\\?([^/\\:*?"<>|]+[/\\])*[^/\\:*?"<>|]*

والمباريات:

c:\
bbbb
\\bob/john\
..\..\

وترفض:

xy:
c:\\bob
هل كانت مفيدة؟

المحلول

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

وهنا شيء ساعد جوجل لي حفر :

RegEx="^([a-zA-Z]\:|\\\\[^\/\\:*?"<>|]+\\[^\/\\:*?"<>|]+)(\\[^\/\\:*?"<>|]+)+(\.[^\/\\:*?"<>|]+)$"

هل يمكن الجمع بين هذا مع System.IO.Path.GetInvalidPathChars () طريقة وجعل التعبير المعتاد يستبعد حيوي جميع أحرف غير صالحة.

نصائح أخرى

وأعتقد أن System.IO.Path.GetFullPath (مسار) بطرح استثناء إذا لم يكن المسار الصحيح نحويا دون التحقق لمعرفة ما إذا كان موجودا.

وكنت قد تكون قادرة على استخدام System.IO.Path وGetInvalidPathChars () وظيفة؟

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