Перемещение файлов в папки

#windows #file #explorer

#Windows #файл #проводник

Вопрос:

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

Комментарии:

1. Да, узнайте об использовании Windows powershell en.wikipedia.org/wiki/PowerShell … должно быть «проще простого» сделать что-то подобное.

2. Как упоминал GhostCat, вы могли бы использовать PowerShell. Пакет Windows — еще один вариант. После написания любого из них вы можете использовать планировщик задач Windows, если вам нужно, чтобы это запускалось несколько раз.

Ответ №1:

что-то вроде этого;

 int i = 0;

string[] filePaths = Directory.GetFiles(@"C:ALLFILESHERE");

foreach (string fileName in filePaths)
{
        i  ;

        bool exists = System.IO.Directory.Exists(Server.MapPath(i));

        if(!exists)
            System.IO.Directory.CreateDirectory(Server.MapPath(i));

        for (int j = 1; j < 50; i  )
        {
            try
            {
                var to = System.IO.Path.Combine(@"C:i", fileName);

                File.Move(fileName , to); // Try to move
                Console.WriteLine("Moved"); // Success
             }
             catch (IOException ex)
             {
                 Console.WriteLine(ex); // Write error
             }
         }
    }
  

Ответ №2:

Создайте файл с именем скажем movefiles.bat , вставьте приведенное ниже содержимое внутрь файла и поместите его в папку, где у вас тысячи файлов. Теперь откройте cmd и запустите bat файл или просто дважды щелкните bat file .

 @ECHO on
SETLOCAL ENABLEDELAYEDEXPANSION 
SET foldersize=30
SET counter=1
SET numFiles=0
::extension of the to be mentioned here as *.txt or *.jpg etc
FOR %%f IN (*.jpg) DO (
IF !counter!==1 (
SET /A numFiles =1
MD folder!numFiles!
) 
MOVE /Y "%%f" folder!numFiles!
IF !counter!==!foldersize! (
SET counter=1
) ELSE (
SET /A counter =1
)
)
ENDLOCAL
PAUSE
  

Он создаст папки и поместит количество файлов, указанное в foldersize .

Комментарии:

1. @Ela что не работает я попробовал это в своей папке, и это работает, какое расширение файла вы хотите переместить? измените расширение FOR %%f IN (*.jpg) DO в этой строке на ваше расширение *.jpg *.txt или что-нибудь еще

2. это сработало, спасибо. в этой папке содержался файл различного формата. это была проблема