Linqでファイルを作成日順でソート


MSDNのサンプルそのままだけど、ちょっと便利。
       private void Form1_Load(object sender, EventArgs e)
        {
            string startFolder = @"C:\My Documents\My Pictures\";

            // Take a snapshot of the file system.
            IEnumerable fileList = GetFiles(startFolder);

            //Create the query
            IEnumerable fileQuery =
                from file in fileList
                where file.Extension == ".jpg"
                orderby file.Name
                select file;

            // Create and execute a new query by using the previous
            // query as a starting point. fileQuery is not
            // executed again until the call to Last()
            var files =
                (from file in fileQuery
                 orderby file.CreationTime
                 select new { file.FullName, file.CreationTime });
        }

        // This method assumes that the application has discovery
        // permissions for all folders under the specified path.
        static IEnumerable GetFiles(string path)
        {
            if (!System.IO.Directory.Exists(path))
                throw new System.IO.DirectoryNotFoundException();

            string[] fileNames = null;
            List files = new List();

            fileNames = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories);
            foreach (string name in fileNames)
            {
                files.Add(new FileInfo(name));
            }
            return files;
        }
広告

コメント / トラックバック1件 to “Linqでファイルを作成日順でソート”

  1. 修司 Says:

    FileInfoのIEnumerable持ってくるなら、@ITで川俣さんが書いてるサンプルが美しいと思うですよ。http://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_06/csharp30_06_01.htmlあ、元ネタは同じかな。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中


%d人のブロガーが「いいね」をつけました。