示例#1
0
        protected string CreateFolderFullPath(string folder)
        {
            Log.WriteLine("CreateFolderFullPath", folder);
            folder = Utils.ConvertToUtf7Modified(folder);
            try
            {
                string returnPath = string.Empty;

                if (_rootFolder != null)
                {
                    returnPath = _rootFolder;
                }

                if (_accountName != null)
                {
                    EmailAddress adr = new EmailAddress();
                    adr.AsString = _accountName;
                    string account = adr.GetAccountName();

                    for (int i = 0; i <= _accountHierarchyDepth - 1; i++)
                    {
                        if (i >= account.Length)
                        {
                            break;
                        }
                        returnPath = Path.Combine(returnPath, account[i].ToString());
                    }
                    returnPath = Path.Combine(returnPath, string.Format("{0}.{1}", _accountName, _accountID));
                }

                Log.WriteLine("CreateFolderFullPath", Path.Combine(returnPath, folder));
                return(Path.Combine(returnPath, folder));
            }
            catch (ArgumentException ex)
            {
                Log.WriteException(ex);
                throw new WebMailIOException(ex);
            }
        }