SORU
15 EYLÜL 2008, PAZARTESİ


Nasıl eğer belirli bir dize Windows altında yasal / geçerli bir dosya adı olup olmadığını kontrol edebilirim?

İşlevsellik benim uygulamada toplu iş dosyası yeniden adlandırma dahil etmek istiyorum. Bir kullanıcı hedef dosya adı deseni yazın ve (desen bazı joker değiştirdikten sonra) eğer Windows altında yasal bir dosya olacak olmadığını kontrol etmek istiyorum. [a-zA-Z0-9_] gibi düzenli ifade kullanmaya çalıştım ama çeşitli dillerden ulusal özel sayıda karakter (Örneğin sesli harfler vb.) içermez. Böyle bir kontrol yapmak için en iyi yolu nedir?

CEVAP
15 EYLÜL 2008, PAZARTESİ


MSDN's "Naming a File or Directory," buradan yasal bir dosya adı altında Windows için genel kuralları:

Geçerli kod sayfası içinde herhangi bir karakter (Unicode/127 yukarıda ANSI) dışında kullanabilirsiniz:

  • * : " / \ | ? * 1* >
  • 0-31 olan karakter (ASCII boşluk daha az)
  • Hedef dosya sistemi izin vermiyor başka bir karakter (mesela, nokta veya boşluk)
  • Herhangi bir DOS isimler: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 (ve önlemek AUX.txt vb)
  • Dosya adı tüm dönemler

Kontrol etmek için isteğe bağlı bazı şeyler:

  • Dosya yolları (dosya adı da dahil olmak üzere) birden fazla 260 karakter (\?\ öneki kullanmayın) olmayabilir
  • Unicode \?\ (önek dizin bileşenleri ' ni genişletin ve taşmaya neden 32.000 sınırlayabilir unutmayın) kullanırken yolları (dosya adı dahil) 32,000'den fazla karakter içeren dosya

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ethr95awd

    ethr95awd

    8 Kasım 2006
  • jat4011

    jat4011

    16 EKİM 2010
  • stokelycalm

    stokelycalm

    28 Aralık 2010