我正在尝试将邮件移动到另一个文件夹,但我无法找到一种简单的方法来检查目标文件夹是否存在,我假设给定的文件夹路径是根文件夹,我尝试这样做:
\n\npublic void MoveMessages(Config accountInfo, List<int> uids, string \n sourceFolderName, string targetFolderName) \n{\n ValidateAccountInfoConfiguration(accountInfo);\n using (var client = new ImapClient())\n {\n Authenticate(accountInfo, client);\n\n var sourceFolder = GetSourceFolder(sourceFolderName, client);\n sourceFolder.Open(FolderAccess.ReadWrite);\n var topLevelFolder = client.GetFolder(client.PersonalNamespaces[0]);\n var topFolders = topLevelFolder.GetSubfolders();\n var targetFolder = topFolders.FirstOrDefault(folder => folder.Name == targetFolderName);\n if (targetFolder == null)\n targetFolder = topLevelFolder.Create(targetFolderName, true);\n var uidsToMove = GetUniqueIds(sourceFolder, SearchQuery.Seen).Where(uid => uids.Any(uidToMove => uidToMove == uid.Id)).ToList();\n sourceFolder.MoveTo(uidsToMove, targetFolder);\n sourceFolder.Expunge(uidsToMove);\n\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n\n在文档中,IMailFolder 接口包含 Exists 属性,但是当我尝试使用 IMailFolder.GetFolder("pathToFolder") 获取文件夹时,如果该文件夹不存在,则会抛出folderNotFound 异常,因此我无法理解用例存在财产,我错过了什么?或者我当前的实现是实现获取目标文件夹的正确方法?
\n