C#找不到正确的文件路径

时间:2017-11-10 18:00:36

标签: c# email email-attachments

我有一个C#控制台应用程序,可以通过电子邮件发送Excel电子表格附件。

我在App.config中提供了文件路径。在尝试查找文件时,代码会查看正确的位置。但是当尝试将文件附加到foreach语句中时,它会查找代码的bin文件夹。

我在这里做错了什么?

DirectoryInfo dir1 = new DirectoryInfo(ConfigurationManager.AppSettings.Get("FilePath"));
        FileInfo[] folderFiles = null;
        folderFiles = dir1.GetFiles();



    foreach (FileInfo aFile in folderFiles)
           {


                 message.Attachments.Add(new Attachment(aFile.Name));
           }

1 个答案:

答案 0 :(得分:1)

您需要使用aFile.FullName(包括完整路径)而不是aFile.Name(仅限文件名)。如果命令没有按预期执行,则应查看文档。

或者,您可以使其更简单:

string dir1 = ConfigurationManager.AppSettings.Get("FilePath");
foreach(string aFile in Directory.EnumerateFiles(dir1))
{
    message.Attachments.Add(new Attachment(aFile));
}

因为Directory.EnumerateFiles只返回完整的文件名,您必须考虑不这样做(例如,使用Path.GetFileName)。