2011-07-03 10 views
2

私はMailMessage Queueを使用しています。プログラムを終了するときに、そのキューの内容を保存します。MailMessage添付ファイルのパスを取得する

私は一時リストを作成し、それにキューの内容を渡しました。その後、単純な StreamWriterを使ってそれぞれの情報を書き出します。

私が得ることができない唯一のことは、添付ファイルのパスです。私が知っている限り、私は単にメールメッセージを保存することはできませんので、これもうまくいくと思っていました。

Path.GetFullPath(x.Attachments[0].Name); 
+0

あなたはどんな問題を抱えていますか? –

+0

添付ファイルの名前はファイルの名前に過ぎません。そのファイルから完全なパスがわからないので、プログラムを再度開くと添付ファイルを再度追加できません。 – SaintHUN

+0

私はそれを理解しました!使用方法 FileInfo asd =新しいFileInfo(x.Attachments [0] .Name); 私は完全な情報を取得し、次にこれを書き出して、ファイルを再接続するために再度使用することができます。 – SaintHUN

答えて

-1

それはでしょう:

s.WriteLine(x.From.Address + x.To[0].Address + x.Body + x.Subject + (x.Attachments[0].ContentStream as System.IO.FileStream).Name); 

Hそれは誰かを助けるope!

+1

はい、フルパスを取得しますが、実際のファイルは取得しません。このメソッドは、ファイルがプログラムの場所であると仮定します。一番簡単なのは、これまでの作業方法は、添付ファイルを追加してそこに情報を保存している間にリストを使用することだけです。 – SaintHUN

+1

-1これは、アセンブリパスを添付ファイル名と連結します。これは質問とは関係ありません。 – Kjellski

0

私はそれが古い質問ですけど、ここでの返答がない、これは実際に動作:

(attachmentObject.ContentStream as System.IO.FileStream).Name 

あなたの特定のケースではあなたが使用することもでき

List<MailMessage> temp = queue.ToList<MailMessage>(); 
Stream stream = File.Open("Queue" +".osl", FileMode.Create); 
StreamWriter s = new StreamWriter(stream); 
foreach (MailMessage x in temp) 
{ 
    s.WriteLine(x.From.Address + x.To[0].Address + x.Body + x.Subject + x.Attachments[0].Name); 
} 
s.Close(); 
stream.Close(); 
関連する問題