我有一个Web服务,用于查找文件夹(C:\ Incoming)中的文件,并通过电子邮件将其发送到指定的电子邮件地址。我希望能够移动该文件夹,一旦邮件被邮寄到另一个文件夹(C:\ Processed)。
我尝试使用下面的代码,但它不起作用。
string SourceFile = "C:\\Incoming\\" + "" + Year + "" + Month + "" + Day + "";
string destinationFile = "C:\\Processed" + "" + Year + "" + Month + "" + Day + "";
System.IO.File.Move(SourceFile , destinationFile);
我收到一条错误消息,指出无法找到源文件。我已经确认它确实存在,我可以访问它。
答案 0 :(得分:2)
您正在移动文件夹而不是文件,您需要迭代文件以逐个复制。
string Source = "C:\\Incoming\\" + "" + Year + "" + Month + "" + Day + "";
string destination = "C:\\Processed" + "" + Year + "" + Month + "" + Day + "";
DirectoryInfo di = new DirectoryInfo(Source);
FileInfo[] fileList = di.GetFiles(".*.");
int count = 0;
foreach (FileInfo fi in fileList)
{
System.IO.File.Move(Source+"\\"+fi.Name , destinationFile+"\\"+fi.Name);
}
答案 1 :(得分:0)
使用String.Format
进行一次,第二次使用System.IO.File.Exists()
以确保文件存在。
string SourceFile = String.Format("C:\\Incoming\\{0}{1}{2}",Year,Month,Day);
string destinationFile = String.Format("C:\\Processed\\{0}{1}{2}",Year,Month,Day);
if (System.IO.File.Exists(SourceFile) {
System.IO.File.Move(SourceFile , destinationFile);
}