2016-03-13 4 views
0

Я знаю, что это кажется довольно простым, и я знаю, что другие вопросы задают это, но мне просто нужно знать, что лично делает лично, и почему оно не работает, потому что должно.Переименование всех файлов в папке в числовом порядке

 int ImageCounter = 1; 

     foreach (var Image in ImageFilePaths) 
     { 
      { 
       // Console.WriteLine(Image); 
       // Console.WriteLine(RenameFolderPath + @"\" + ImageCounter + ".jpeg"); 
        File.Move(Image, RenameFolderPath + @"\" + ImageCounter + ".jpeg"); 
        ImageCounter++; 
      } 
     } 

Так Theres около 150 изображений в папке и после запуска этого, им осталось 11, 10 из которых пронумерованы 1-10 и 11 остается с исходным именем. Если я распечатаю (изображение), он напечатает около 150 оригинальных имен, если я напечатаю 2-ю строчку, она напечатает то же самое, но «1 - около 150» вместо исходного. так Там нет проблем, там, оно должно быть с file.move, но я не вижу ничего плохого

+0

им не получить любые ошибки и его не в состоянии проверки, какой другой код вам понравится? все вокруг работает, потому что он на 100% прокручивается через каждый файл. – Will

+1

. Вам нужно будет опубликовать больше кода - мы понятия не имеем, что такое ImageFilePaths - например, если он является IEnumerable из списка папок, он не полностью оценен, поэтому вы Перемещение будет мешать выходу ForEach. – PhillipH

+0

'string [] ImageFilePaths = новая строка [] {}; строка RenameFolderPath = AppDataPath + @ "\ Graphics \ BackupSorting \" + RootFolderName + @ "\ 0-1"; ImageFilePaths = Directory.GetFiles (RenameFolderPath); ' – Will

ответ

0

Не уверен, что остальная часть кода выглядит, но это работает для меня:

void Main() 
{ 
    MoveFiles(@"c:\Temp\MoveTest", @"C:\Temp\MoveTest1"); 
} 

public void MoveFiles(string fromDir, string toDir) 
{ 
    int ImageCounter = 1; 

    // Take a snapshot of the file system. 
    System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(fromDir); 
    IEnumerable<System.IO.FileInfo> ImageFilePaths = dir.GetFiles("*.*", System.IO.SearchOption.TopDirectoryOnly); 

    foreach (var Image in ImageFilePaths) 
    { 
     { 
      Console.WriteLine(Image); 
      Console.WriteLine(toDir + @"\" + ImageCounter + ".jpeg"); 
      File.Move(Image.FullName, toDir + @"\" + ImageCounter + ".jpeg"); 
      ImageCounter++; 
     } 
    } 
} 
+0

благодаря плохому использованию, которое – Will