Ответ 1
DirectoryInfo не является статическим классом (вы смешали его с Directory, который предоставляет статические методы), поэтому вы должны создать его экземпляр:
var dir = new DirectoryInfo(textBoxPath.Text);
FileInfo[] files = dir.GetFiles();
Также я предлагаю вам использовать Path.Combine
для создания нового пути к файлу и FileInfo.MoveTo
, который не требует имени исходного каталога:
for(int i = 0; i < files.Length; i++)
{
FileInfo file = files[i];
string destination = Path.Combine(file.DirectoryName, "File", i.ToString());
file.MoveTo(destination);
}
Еще одна мысль - если вам не нужна дополнительная информация о файлах, помимо имен, то вы можете получить имена файлов только, без создания объектов FileInfo
. Используйте статические методы классов Directory
и File
. Это будет более эффективно:
string sourceDir = @"D:\Downloads";
string[] files = Directory.GetFiles(sourceDir);
for (int i = 0; i < files.Length; i++)
{
string fileName = files[i];
var destination = Path.Combine(sourceDir, "File", i.ToString());
File.Move(fileName, destination);
}