我正在尝试使用来自gmail的smtp发送文件,但我偶然发现了一个问题。
该文件将存储在windows appdata文件夹中。 要将文件添加到电子邮件中,我正在使用:
attachment = new System.Net.Mail.Attachment((Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/Folder1/Folder2/Folder3/result.txt"));
上面的代码有效,但是:
我目前遇到的问题是Folder2
如上所示,将是一个包含数字,字母和单词TEMP
的随机名称。
例如a12TEMP34b
如果我能够以某种方式使用*
,我已经尝试并搜索过,但似乎无法使其正常工作。
有什么想法吗?
答案 0 :(得分:0)
你可以将Directory.GetDirectory解析成一个字符串数组并抓住该数组的第一个元素,如果你确定它将永远是那个路径。
所以:
string staticPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/Folder1/";
string dynamicFolder = Directory.GetDirectory(staticPath, "*TEMP*")[0];
string finalPath = dynamicFolder + "/Folder3/result.txt"
答案 1 :(得分:0)
您可以使用Directory.EnumerateDirectories搜索特定文件夹:
var folder1 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Folder1");
var folder2 = Directory.EnumerateDirectories(folder1, "*TEMP*").Single();
var path = Path.Combine(folder2, "Folder3/result.txt");
attachment = new System.Net.Mail.Attachment(path)