Burak Selim Senyurt

Matematik Mühendisi Bir .Net,Ruby ve Python Severin Maceraları

TFİ 111 - Dosya Adı İçinden Geçersiz Karakterleri Çıkartmak

Merhaba Arkadaşlar,

Diyelim ki elinizde bir takım dosya adları var. Bu dosya adları herhangi bir kaynaktan okunuyor. Ancak bazı dosya adlarında geçersiz karakterler yer aldığını tespit ediyorsunuz(? : < vb) Siz de dosya adlarını kendi uygulamanız içerisinde değerlendirirken bu geçersiz karakterlerden arındırarak hareket etmek niyetindesiniz. Ne yaparsınız? Bunun için bir genişletme fonksiyonu(extension method) yazmak isteseniz nasıl hareket edersiniz? Yoksa aşağıdaki gibi bir metod işinize yarar mı?

Bir başka ipucunda görüşmek dileğiyle, hepinize mutlu günler dilerim.

Yorumlar (3) -

  • omerfarukz

    4.5.2015 04:21:00 | Yanıtla

    Gecenin yarisinda ipucunu gorup asagidaki kodu yazmadan uyuyamadim. Bu da baska bir versiyonu olsun Smile

    public static class StringExtensions
    {
        private static readonly IEnumerable<char> _allInvalidChars;

        static StringExtensions()
        {
            _allInvalidChars = Path.GetInvalidFileNameChars().Concat(Path.GetInvalidPathChars());
        }

        public static string RemoveIllegalChars(this string source)
        {
            return new string(source.Where(f => !(_allInvalidChars.Contains(f))).ToArray());
        }
    }

    • burak selim şenyurt

      4.5.2015 12:13:45 | Yanıtla

      Merhabalar Ömer Bey,

      Çok teşekkürler değerli yorumunuz için. Bence gayet şık bir kod parçası olmuş sizinki de Smile

    • selman

      29.5.2015 21:44:49 | Yanıtla

      IEnumerable yerine HashSet kullanılabilir. bu kod her bir karakter için .Concat methodunu çalıştıracak.

Loading