[英]C# code not creating directory or saving file
我正在制作一個Outlook插件,它將在收到郵件時自動將郵件保存到文件服務器。 這部分代碼根本不執行要求的操作!
//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代碼也不會創建目錄-並且我確定程序中的文件路徑正確。 我從此鏈接中了解到,這可能與文件系統虛擬化有關。 如果是這樣,我該如何解決該問題?
還有一點是,如果我將mail.SaveAs指向Desktop文件夾,它將保存它。
編輯出於某種奇怪的原因,使用Path.Combine()
工作。 歸功於Sinatr。 謝謝大家的提示。
問題出在行中:
string.Format("text-{0:yyyy-MM-dd_hh-mm-ss-tt}", mail.ReceivedTime)
當轉換為字符串時,它變得像:1/1/2014 12:35:35 PM創建文件時,“ /”和“:”是非法字符,因此,為使更改量最小,建議您在以下位置附加幾個Replace函數字符串的結尾。格式如下:
string.Format("text-{0:yyyy-MM-dd_hh-mm-ss-tt}", mail.ReceivedTime).Replace('/','-').Replace(':',' ')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.