نصف كولون في أسماء ملفات Windows؟
-
28-09-2019 - |
سؤال
سأل أحد المستخدمين عن سبب عدم دعم تطبيقي في أسماء الملفات. لقد تجولت عبر الكود الخاص بي ، ويبدو أن Windows GetOpenFilename يقتطع أي اسم ملف يحتوي على شبه كولون. على سبيل المثال "واحد ؛ two.wav" -> "واحد".
تقول Microsoft إن الكولونز غير مسموح به ، لكن لا تذكر نصف الكولون ...
http://msdn.microsoft.com/en-us/library/AA365247(VS.85).aspx
هل هم قانونيون أم لا؟
تحرير: .. وكيفية getOpenfilename () للعمل مع شبه كولونس في اسم الملف؟
أوه! ، غريب - اسم الملف صحيح ، باستثناء "تم التمرير" إلى اليسار. لذا ، يبدو "واحد ؛ Two.wav" مثل "Two.wav" حتى أنقر عليه واضغط على الجاري الأيسر (ثم إنه جيد). لذلك ليس خطأ على هذا النحو ، فقط سلوك غريب.
المحلول
Semicolons قانونية في مسارات ملفات NTFS.
استخدم أي حرف في صفحة التعليمات البرمجية الحالية للحصول على اسم ، بما في ذلك أحرف Unicode والأحرف في مجموعة الأحرف الموسعة (128-255) ، باستثناء ما يلي:
الأحرف المحجوزة التالية:
- <(أقل من)
(أكثر من)
- : (القولون)
- " (اقتباس مزدوج)
- / (مائل)
- (backslash)
- | (الشريط العمودي أو الأنابيب)
- ؟ (علامة استفهام)
- (العلامة النجمية)
- قيمة عدد صحيح الصفر ، يشار إليها أحيانًا باسم حرف ASCII NUL.
- الأحرف التي تكون تمثيلها الصحيح في النطاق من 1 إلى 31 ، باستثناء التدفقات البديلة حيث يُسمح بهذه الأحرف.
- أي حرف آخر لا يسمح به نظام الملفات المستهدف.
أنا قادر على إضافة Samicolons إلى أسماء الملفات على نظام Win7 الخاص بي. راقب الكود ، على الأرجح لك أو رمز الطرف الثالث ، وهذا يفعل أشياء غريبة بأحرف غير متوقعة (أبرز المساحات).
نصائح أخرى
على الرغم من أنه قد يتم حذفه في كتيب Windows ، إلا أن Semicolon هو شخصية محجوزة أيضًا ، على سبيل المثال "Dir ..BAK "أمر قانوني. ينطبق الشيء نفسه على الحرف Plus ، على سبيل المثال" copy test1.dat+test2.dat test3.dat "أمر قانوني.
TRUE: يسمح Windows بنويكولون في أسماء الملفات. ولكن عندما تحرق هذه الملفات إلى قرص بيانات أو قرص DVD ، يتم اقتطاع الأسماء. هذا لقد واجهت عند استخدام إصدار Nero 9.
نعم ، يسمح لهم. فقط إذا كنت تقوم بتشغيلها في سطر الأوامر ، فعليك وضع علامات اقتباس داخلها.
نعم. نصف اللون هو شخصية قانونية في اسم ملف Windows. لن يفاجئني ذلك ، إذا كانت هناك برامج أخرى واجهت مشكلة معهم.