获取子目录文件并添加到字符串数组
本文关键字:字符串 数组 添加 子目录 文件 获取 | 更新日期: 2023-09-27 18:26:23
我正试图将完整的目录路径以及文件和扩展名插入到字符串数组中,但我没有得到,很可能有人有更好的方法来做到这一点。
我使用嵌套的for each,因为在主目录"directoryInfo"下面有一个目录列表,其中包含我要查找的文件。
string[] moveLocalFiles;
List<String> localFiles = new List<String>();
DirectoryInfo directoryInfo = new DirectoryInfo(sourceFilePath);
try
{
foreach (DirectoryInfo i in directoryInfo.GetDirectories())
{
foreach(FileInfo f in i.GetFiles(".twb"))
{
localFiles.Add(f.ToString());
}
moveLocalFiles = localFiles.ToArray();
foreach (string filePath in moveLocalFiles)
{
//do something
}
}
catch (Exception ex)
{
throw ex;
}
正如Dan所说,您的过滤器中肯定缺少一个"*",但除此之外,您还应该使用FullName属性,如下所示:
localFiles.Add(f.FullName);
此外(但这可能是所需的行为),您只浏览"sourceFilePath"的第一级子目录(也不包括该目录)。在示例代码中,在"catch"行之前也缺少一个括号(但我知道这只是您粘贴在这里的示例代码,而不是您真正的程序)。我希望这能有所帮助。
在GetFiles调用中,似乎缺少了.twb之前的一个*。
如果你想获得每个目录和文件的完整路径,你可以使用你自己的方法,只是稍微改变了一下:
foreach (DirectoryInfo i in directoryInfo.GetDirectories())
{
foreach (FileInfo f in i.GetFiles("*.twb")) //The * is a wildcard search for anything
{
localFiles.Add(f.FullName); //FullName returns the full path
}
}
或者,您可以像这样使用System.IO.Directory
类:
foreach (string i in Directory.GetDirectories("path to directory"))
{
foreach (string f in Directory.GetFiles(i, "*.twb")) //The * is a wildcard search for anything
{
localFiles.Add(f);
}
}