0

プログラムがパスまたはzipファイルからすべてのファイルを入力として読み取る方法を見つけようとしています。入力フォルダー内のすべてのファイル名を読み取り、それを分割して、製品 ID やチップ名などの情報を取得できるようにします。製品IDとチップ名と一致する正しいデータベースにpdfファイルを保存するよりも。

製品 ID は KHSA1234C で、チップ名は LK454154 です。

例 ファイル名:N3405-H-KAD_K-KHSA1234C-542164143_LK454154_GFK.pdf

public void btnUploadAttach_Click(object sender, EventArgs e)
{
    string fName = this.FileUploadCFC.FileName;
    string path = @"C:\mydir\";
    string result;

    result = Path.GetFileNameWithoutExtension(fName);
    Console.WriteLine("GetFileNameWithoutExtension('{0}') return '{1}'", 
                      fName, result);

    result = Path.GetFileName(path);
    Console.WriteLine("GetFileName('{0}') return '{1}'", path, result);

    string[] sSplitFileName = fName.ToUpper().Split("-".ToCharArray());

    foreach (char file in fName)
    {
        try
        {
            result = sSplitFileName[0] + "_" + sSplitFileName[1] + "-" + 
                     sSplitFileName[2] + "_" + sSplitFileName[3] + "_" +
                     sSplitFileName[4] + "_" + sSplitFileName[5] + "_" +
                     sSplitFileName[6];
        }
        catch
        {
            return;
        }
    }
}

正しい軌道に乗っているかどうかはわかりません。誰かが私を助けることができますか?ありがとうございました。

4

3 に答える 3

0

ファイルがすべて同じパターンに従っていると仮定すると、区切り文字「-」と「_」のすべてで分割できる可能性があります。

class Program
{
    static void Main(string[] args)
    {
        string[] files = Directory.GetFiles(@"C:\mydir\", "*.pdf");
        foreach (var file in files)
        {
            var fileName = Path.GetFileNameWithoutExtension(file);
            var tokens = fileName.Split('-', '_');
            for(int i=0;i<tokens.Length;i++)
            {
                string token = tokens[i];
                Console.WriteLine("{0}-{1}", i, token);
            }
            Console.WriteLine();
        }
        Console.ReadLine();
    }
}
于 2013-11-14T23:34:07.347 に答える
0

肯定的な声明を出すには: あなたは正しい道を進んでいますが、まだそこにはいません :-)

まず、パスからファイルを読み取る必要がありますが、現在はこれを行っていません。

Directory.GetFiles()探し物かもしれません。これは、ファイル名のリストをstring[]配列として返します。

ファイルを反復処理して分割を適用する必要があります。これは、コードで問題ないように見えます。ファイルのパーツが揃ったら、使用するデータベースを決定します。ファイル名の各部分のプロパティを公開する独自のファイル名クラスにファイル名を分割するのが賢明かもしれませんが、これは必須ではありません。

次に、db プログラミングを正しく行う必要があります。これを行う方法については、多数の例があります。幸運を :-)

于 2013-11-14T23:31:39.177 に答える