imapX недопустимые символы в пути

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

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

Я использую 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)


person Matt Canty    schedule 13.02.2012    source источник
comment
Даже это не работает! a.SaveFile(Directory.GetCurrentDirectory());   -  person Matt Canty    schedule 13.02.2012


Ответы (2)


Может быть, попробуйте это:

Path.GetFullPath()

person insomnium_    schedule 10.03.2012
comment
Привет, бессонница, извини, что не заметила твой ответ раньше. Я пошел с этим без везения. Мне действительно нужно запросить исходный код, так как сообщение об ошибке не имеет смысла, я видел много путей, и этот не выглядит незаконным! Я думал, что, возможно, для этого требуется только путь к каталогу, но пробовал и это, но безрезультатно. - person Matt Canty; 22.03.2012

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

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

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

person Matt Canty    schedule 22.03.2012