C#によるプレイリスト作成

ただの雑品(ざっぴん)。「 ディレクトリの中で実行するとプレイリストを書き出す 」という機能をシンプルに書いてみた。Monoか.NET上でコンソールアプリとしてコンパイルすると動く。

using System;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;

namespace make_playlist
{
  class MainClass
  {
    public static void Main(string[] args)
    {
      List<String> s = new List<String>();
      DirectoryInfo dir = new DirectoryInfo(".");
      foreach(FileInfo f in dir.GetFiles()){
        if(Regex.IsMatch(f.Name,".mp4$", RegexOptions.IgnoreCase) ||
	   Regex.IsMatch(f.Name,".flv$", RegexOptions.IgnoreCase)){
          s.Add(f.Name);
        }
      }
      Console.WriteLine("[playlist]\nNumberOfEntries={0}",s.Count);
      int i = 0;
      foreach(String x in s){
        i++;
        Console.WriteLine("File{0}={1}",i,x);
      }
    }
  }
}

……ちなみに同じものをrubyで書くと以下のようになる。実用はやはりこっちかね。

#!/usr/bin/ruby

s=[]
Dir.open(".").each {|f|
  if f =~ /\.(txt|mp4)$/i
    s[s.length] = f.clone
  end
}
print "[playlist]\nNumberOfEntries=#{s.length}\n"
for i in 0..s.length-1
  print "File"+(i+1).to_s+"="+s[i]+"\n"
end

Perlなら、こうかな。シンプル…… :D

#!/usr/bin/perl
opendir(DIR, ".") or die;
foreach(sort readdir(DIR)){$s[@s]=$_ if(/\.(flv|mp4)$/i);}
closedir(DIR);
print "[playlist]\nNumberOfEntries=".@s."\n";
$i=0;
foreach(@s){$i++;print "File".$i."=".$_."\n";}

まぁ、サンプルってことで^^;