0

我有一个 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);

我收到一条错误消息,提示找不到源文件。我已经验证它确实存在并且我可以访问它。

4

2 回答 2

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);
}
于 2012-10-18T13:50:57.947 回答
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);
 }
于 2012-10-18T13:51:49.710 回答