我有一个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));
}
答案 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
)。