在Web服务中将文件夹从一个位置移动到另一个位置

时间:2012-10-18 13:47:21

标签: c# web-services

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

我收到一条错误消息,指出无法找到源文件。我已经确认它确实存在,我可以访问它。

2 个答案:

答案 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);
 }