2016-04-20 26 views
1

我想从Gmail发送一个使用SMTP的文件,但是我偶然发现了一个问题。C#针对一个地图名称部分已知的目录

该文件将存储在Windows应用程序数据文件夹中。 将文件添加到电子邮件中,我使用:

attachment = new System.Net.Mail.Attachment((Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/Folder1/Folder2/Folder3/result.txt")); 

的代码如上工作,但:

我现在有这个问题,是Folder2如上所见,将一个包含数字,字母和单词TEMP的随机名称。

例如a12TEMP34b

我曾尝试和搜索,如果我能够使用*莫名其妙,但似乎无法得到它的工作。

任何想法?

回答

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) 
+0

非常感谢您!这确实是我正在寻找的! – japoo

0

您可以将Directory.GetDirectory解析为一个字符串数组,并抓取该数组的第一个元素,如果您确定它始终是该路径。

所以:

string staticPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/Folder1/"; 

string dynamicFolder = Directory.GetDirectory(staticPath, "*TEMP*")[0]; 

string finalPath = dynamicFolder + "/Folder3/result.txt" 
相关问题