У меня есть тысячи файлов изображений в папке, и я хочу, чтобы программа автоматически создавала новые папки и помещала пятьдесят файлов в каждую папку.
Есть идеи?
Это похоже на работу PowerShell. Что-то вроде этого должно работать:
# Create 100 folders
1..100 | % {New-Item -Name $_ -ItemType directory}
# select 50 files and move them into folder 1, 2, 3 etc until we hit 100
1..100 | % {
$files = ls | select -First 50
Move-Item $files .\$_
}
Если вы можете скомпилировать код C#, я предлагаю использовать эту программу, которая принимает путь (try .
) и число ( 50
) в качестве аргумента. Он создаст числовые подпапки и переместит туда файлы. Я выпускаю этот код без гарантии и под лицензией CC-0.
using System;
using System.IO;
namespace MoveNFilesToFolder
{
static class Program
{
static void Main(string[] args)
{
try
{
var path = args[0];
int n = int.Parse(args[1]);
var files = Directory.GetFiles(path, "*.*");
int fileno = 0;
foreach (var file in files)
{
var subdir = Directory.CreateDirectory(Path.Combine(path, "" + (fileno++/n)));
var targetfile = Path.Combine(subdir.FullName, Path.GetFileName(file));
try
{
File.Move(file, targetfile);
}
catch (Exception)
{
Console.WriteLine("Could not move " + file + " to " + targetfile);
}
}
}
catch (Exception)
{
Console.WriteLine("MoveNFilesToFolder <path> <count>");
}
}
}
}