0

注意してください、私は実際に私にとってよりうまくいく回避策を見つけました. つまり、まったく保存するのではなく、バイト ストリームを使用してデコードします。したがって、回答は必須ではありませんが、人々のコメントに興味があります。

パス内の不正な文字に問題があります。私は同じものの多くの異なるバージョンを試しました.確かにそれは私が必要とする単なるパスであり、私はそれがどのように見えるかを知っていると確信しています. 誰かが私が間違っているかもしれないことを提案できますか?

http://hellowebapps.com/products/imapx/を使用しています

接続その他は問題ありません!

コード:

            foreach (Message m in _imapClient.Folders["Football"].Messages)
            {
                m.Process();
                List<Attachment> attachment = m.Attachments;

                foreach (var a in attachment)
                {
                    a.SaveFile(@"C:\FileDrop\hello.csv");
                    //a.SaveFile(@"C:\FileDrop\");
                }
            }

スタックトレース:

System.ArgumentException: パスに無効な文字があります。System.IO.Path.CheckInvalidPathChars (文字列パス) で System.IO.Path.GetFileName (文字列パス) で System.IO.FileStream..ctor (文字列パス、FileMode モード、FileAccess アクセス) で ImapX.Attachment.SaveFile(文字列 downloadLocation)

4

2 に答える 2

0

これを回避する唯一の方法は、 Convert.FromBase64String( )でEncoding.GetString()を使用して、添付データから文字列を直接取得することです。

return _encoding.GetString(Convert.FromBase64String(contentStream));

次に、通常どおりファイルを保存します: MSDN

于 2012-03-22T10:17:05.353 に答える
0

多分これを試してください:

Path.GetFullPath()

于 2012-03-10T09:51:14.753 に答える