if
Directory.GetFiles
return one as length, at that time there may be a file. So why don't you debug and check the file details at run time or show message with file names?
do as below
string[] files= Directory.GetFiles(@"C:\Users\William\Documents\H\");
MessageBox.Show(string.Format("File Count :{0} and Files :{1}", files.Length, string.Join(",", files)));