我正在尝试通过提供以下网址来打开电子邮件
mailUrl = "/Inbox/test%20mail%20%2B%20to%20verify%20%2B%20symbol.EML"
oXMLHttp.open("PROPFIND", mailUrl, false, strUser, strPass);
%20 - space
%2B - +
它返回file not found
错误,但文件存在。我面临的问题是,只要在文件名中使用+
符号,就会发现找不到文件错误。
答案 0 :(得分:1)
因为该命名约定是非法的。避免在文件名中使用非字母数字字符。使用这些字符可能会导致问题和问题,而且文件名不能超过128个字符。
阅读以下链接,它们有助于理解并列出文件名中需要避免的符号:
也许你可以尝试在传递给oXMLhttp.open()
函数之前清理输入(文件名),如下所示:
string mailUrl = "/Inbox/test%20mail%20%2B%20to%20verify%20%2B%20symbol.EML"
private static string SanitizeFileName(string name)
{
string invalidChars = Regex.Escape( new string( Path.GetInvalidFileNameChars() ) );
string invalidReStr = string.Format( @"[{0}]+", invalidChars );
return Regex.Replace( name, invalidReStr, "_" );
}
validFileName = SanitizeFileName(mailUrl);
oXMLHttp.open("PROPFIND", validFileName, false, strUser, strPass);