如何在C#中从文件夹创建文件名列表

saf*_*afi 3 c#

当我想用文件名填充数组时,我遇到了问题.

代码是:

 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)

当我遍历数组时,数组不包含任何东西:(那么如何在这种情况下填充数组?或任何更好的解决方案:)

Chr*_*ken 6

你是在循环的每次迭代开始时将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)


Man*_*rin 6

在您的其他问题上发布的解决方案.这消除了完全循环的需要

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"