Недопустимые символы imapX в пути - PullRequest
0 голосов
/ 13 февраля 2012

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ, я нашел работу, которая действительно работает лучше для меня То есть использовать поток байтов и декодировать, а не сохранять вообще. Поэтому ответы не являются необходимыми, но я все равно был бы заинтересован в любых комментариях, которые имеют люди.

Возникли проблемы с недопустимыми символами в пути. Я перепробовал много разных версий одного и того же, конечно, мне нужен только путь, и я уверен, что знаю, как он выглядит! Может кто-нибудь подсказать, что я могу делать не так?

Я использую 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 (String path) в System.IO.Path.GetFileName (String path) в System.IO.FileStream..ctor (Строковый путь, режим FileMode, FileAccess доступ) в ImapX.Attachment.SaveFile (String downloadLocation)

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

Единственный способ обойти это - напрямую получить строку из данных вложения - используя Encoding.GetString () с Convert.FromBase64String ()

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

Затем просто сохраните файл как обычно: MSDN

0 голосов
/ 10 марта 2012

Возможно попробуйте это:

Path.GetFullPath ()

...