2

システムは、さまざまな拡張子を持つファイルを生成します。これらのファイルは、電子メール アドレスに送信する必要があります。

拡張子を知らずにファイルを添付ファイルに入れるにはどうすればよいですか

たとえば、"sample.xls" を添付ファイルに追加する必要がありますが、アプリケーションは "sample.txt" を追加することもできます。私は今持っています

attachment = new System.Net.Mail.Attachment(@"M:/" + filename + ".xls");

私はこのようなものが欲しい

attachment = new System.Net.Mail.Attachment(@"M:/" + filename); // this didnt work

あらゆる種類のファイルを送信できるようにします。ちなみに、ファイル名はコードからではなく、拡張子のないデータベースからのものなので、単純な「サンプル」であり、拡張子が不明なファイルを送信する必要があり、最後に正しい拡張子を付けて送信する必要があります.

助けていただければ幸いです。

4

2 に答える 2

4

多分これはあなたを助けることができます(ループして実行したい場合):

string[] files = Directory.GetFiles("Directory of your file");
foreach (string s in files)
{
    if (s.Contains(@"FileName without extension"))
    {
        attachment = new System.Net.Mail.Attachment(s);
        mailMessage.Attachments.Add(attachment);   // mailMessage is the name of message you want to attach the attachment
    }
}
于 2013-06-26T11:01:21.597 に答える
2

filenameはファイル名のみであり、他のパス コンポーネントが含まれていないと仮定します。

foreach (string file in Directory.GetFiles(@"M:\", filename + ".*"))
{
   yourMailMessage.Attachments.Add(new System.Net.Mail.Attachment(file));
}

filenameサブディレクトリが含まれている場合

string fullPath = Path.Combine(@"M:\", filename + ".*");
foreach (string file in Directory.GetFiles(Path.GetDirectoryName(fullPath), Path.GetFileName(fullPath)))
{
   yourMailMessage.Attachments.Add(new System.Net.Mail.Attachment(file));
}
于 2013-06-26T13:04:37.993 に答える