我正在做一個Outlook插件,它會自動保存郵件到文件服務器收到時。這部分代碼根本不會做它要求做的事情!C#代碼不創建目錄或保存文件
//RelevantDirectory[0] is the root folder where I want to save stuff, and sits on a mapped network drive where I have full admin permissions.
System.IO.Directory.CreateDirectory(RelevantDirectory[0] + "\\Email Correspondence\\");
System.IO.Directory.CreateDirectory(RelevantDirectory[0] + "\\Email Correspondence\\Outgoing");
mail.SaveAs(RelevantDirectory[0] + "\\Email Correspondence\\Outgoing\\" + mail.SenderName + " - " + string.Format("text-{0:yyyy-MM-dd_hh-mm-ss-tt}", mail.ReceivedTime) + ".msg");
System.Windows.Forms.MessageBox.Show(System.IO.File.Exists(RelevantDirectory[0] + "\\Email Correspondence\\Outgoing\\" + mail.SenderName + " - " + string.Format("text-{0:yyyy-MM-dd_hh-mm-ss-tt}", mail.ReceivedTime) + ".msg").ToString()); //returns True!
MessageBox返回True,但該文件實際上並不存在! CreateDirectory代碼也不會創建目錄 - 我確信程序中的文件路徑是正確的。我從這個link瞭解到,這可能與文件系統虛擬化有關。如果是這樣,我該如何解決這個問題?
還有一點是,如果我點mail.aveAs到桌面文件夾,它將其保存。
編輯由於一些離奇的原因,使用Path.Combine()
工作。感謝Sinatr。感謝大家的提示。
嘗試在創建路徑時使用'Path.Combine'。 – Sinatr 2014-10-10 08:40:41
你調試了你的代碼嗎? 'RelevantDirectory [0]'的價值是什麼? – 2014-10-10 08:40:58
你不需要創建每個文件夾,只需使用'System.IO.Directory.CreateDirectory(RelevantDirectory [0] +「\\ Email Correspondence \\ Outgoing」);'將創建你所需的文件夾結構。 – Bolu 2014-10-10 08:44:56