我有一个与此类似的文件夹结构:
HostnameA-> DateTimeA-> hashdumpDateTimeA.txt
HostnameA-> DateTimeB-> hashdumpDateTimeB.txt
HostnameA-> DateTimeC-> hashdumpDateTimeC.txt
HostnameA-> DateTimeD-> hashdumpDateTimeD.txt
我的目标: 给定一个文件夹(在本例中为HostnameA),我需要:
1)获取每个hashdumpDateTime.txt
文件名并将其放在一个String数组中 - 假设该文件始终存在于所有文件夹中 -
2)使用数组生成DropDownBox
(我可以想出来)
3)当用户通过下拉框选择文件名时,它将用我的datagridview填充 内容(我可以想出来)
所以我的问题确实是#1,因为我不知道如何创建一个循环来检查来自HostnameA文件夹的文件名,我需要知道这个,因为这些文件名的DateTime发生了变化
我非常感谢未来的帮助,谢谢和欢呼=)
答案 0 :(得分:4)
您可以使用Directory.GetFiles
方法
var files = Directory.GetFiles("directoryPath","*.txt",SearchOption.AllDirectories)
这将为您提供所有文件名。如果您不想要名称,例如,如果您想要文件的完整路径,以及其他一些属性(如CreationTime,LastAccessTime),请使用DirectoryInfo
class
DirectoryInfo di = new DirectoryInfo("path");
var files = di.GetFiles("*.txt",SearchOption.AllDirectories)
这将返回一个FileInfo
个实例的数组。然后使用循环并对文件执行所需的操作。
答案 1 :(得分:0)
您不需要知道DirectoryName
或FileName
的确切名称,而是使用for
循环和searchPattern
。
private string[] GetFileNames(string folder)
{
var files = new List<string>();
foreach (var dateTimeFolder in Directory.GetDirectories(folder))
{
files.AddRange(Directory.GetFiles(dateTimeFolder, "hashdump*.txt"));
}
return files.ToArray();
}