当我想用文件名填充数组时,我遇到了问题.
代码是:
string [] arrays= {};
String sdira= "path of the directory";
foreach (string d in Directory.GetDirectories(sdira))
{
foreach (string f in Directory.GetFiles(d, "*.*"))`enter code here`
{
int j = 0;
array[j++] = path.getfiles(f);
}
}
Run Code Online (Sandbox Code Playgroud)
当我遍历数组时,数组不包含任何东西:(那么如何在这种情况下填充数组?或任何更好的解决方案:)
你是在循环的每次迭代开始时将j重置为0.
这个怎么样:
List<string> files = new List<string>();
String sdira = "path of the directory";
foreach (string d in Directory.GetDirectories(sdira)) {
foreach (string f in Directory.GetFiles(d, "*.*")) {
files.Add(f);
}
}
Run Code Online (Sandbox Code Playgroud)
在您的其他问题上发布的解决方案.这消除了完全循环的需要
string [] arrays;
String sdira= "path of the directory";
arrays = Directory.GetFiles(sdira, "*", SearchOption.AllDirectories).Select(x => Path.GetFileName(x)).ToArray();
Run Code Online (Sandbox Code Playgroud)
也可以
arrays = Directory.GetFiles(sdira, "*", SearchOption.AllDirectories)
.Where(s => (Path.GetExtension(s).ToLower() == extensionType)).ToArray();
Run Code Online (Sandbox Code Playgroud)
如果你只想说.jpg(似乎在你的其他问题中显示)extensionType =".jpg"