0

C#でファイル名の最初の6文字に基づいてファイルのフルパスを取得するにはどうすればよいですか? これに正規表現はありますか?

500K 以上の画像を含むフォルダーがあります。すべての画像には、データベースの列の値に従って名前が付けられます。テーブルをクエリしており、列の値に基づいて、特定のファイルのフォルダーを検索する必要があります。

列の値が 209050 の場合、フォルダーには 209050.pdf または 209050_12345.pdf のような 1 つのファイルがあります。209050 のイメージは常に 1 つです。

助けてください

4

2 に答える 2

1
var files = Directory.EnumerateFiles(@"C:\MyRootDir", "209050*", SearchOption.AllDirectories);

これは列挙可能な文字列を返します。各文字列は、指定されたパターンに名前が一致するファイルのフル パスになります。この場合、拡張子に関係なく、名前が '209050' で始まるすべてのファイルです。これにより、フォルダ MyRootDir のサブディレクトリ内も検索されます。

ファイルのみをフィルタリングするjpg場合は、それに応じて 2 番目の引数を変更します。

var files = Directory.EnumerateFiles(@"C:\MyRootDir", "209050*.jpg", SearchOption.AllDirectories);

.Net Framework 4 または 4.5 を使用していない場合は、GetFiles代わりにメソッドを使用できます。

var files = Directory.GetFiles(@"C:\MyRootDir", "209050*.jpg", SearchOption.AllDirectories);
于 2012-07-09T13:28:33.633 に答える
0

.jpg以下は、で始まるすべてのファイルを表示し209050ますC:\MyDirectory

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] myFiles = Directory.GetFiles(@"C:\MyDirectory");

            foreach (var x in myFiles)
            {
                string[] splitName = x.Split('\\');
                string fileName = splitName[splitName.Length - 1];

                if (fileName.StartsWith("209050") && fileName.EndsWith(".jpg"))
                {
                    Console.WriteLine(x);
                }
            }

            Console.ReadLine();
        }
    }
}

これが私のディレクトリです:

マイ ディレクトリ

出力は次のとおりです。

出力

これは役に立ちますか?

于 2012-07-09T13:01:50.097 に答える