【问题标题】:Moving files into folders将文件移动到文件夹中
【发布时间】:2016-10-04 16:12:40
【问题描述】:

我在一个文件夹中有数千个图像文件,我想要一个程序自动创建新文件夹并在每个文件夹中放置 50 个文件。有什么想法吗?

【问题讨论】:

  • 是的,了解如何使用 Windows powershell en.wikipedia.org/wiki/PowerShell ... 做这样的事情应该是“小菜一碟”。
  • 正如 GhostCat 提到的,您可以使用 PowerShell。 Windows 批处理是另一种选择。编写完其中一个后,如果需要多次运行,可以使用 Windows 任务调度程序。

标签: windows file explorer


【解决方案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中指定的文件数。

    【讨论】:

    • @Ela 什么不起作用我已经在我的文件夹中尝试过这个并且它的工作,你想要移动的文件扩展名是什么?将此行中的扩展名FOR %%f IN (*.jpg) DO 更改为您的扩展名*.jpg*.txt 或其他任何内容
    • 它成功了,谢谢。该文件夹包含各种格式的文件。这就是问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2021-08-02
    • 2019-01-14
    相关资源
    最近更新 更多