2016-10-04 20 views
0

私は何千もの画像ファイルをフォルダに持っており、自動的に新しいフォルダを作成し、各フォルダに50個のファイルを置くようにしたい。何か案が?ファイルをフォルダに移動

+1

はい、Windows powershellを使用する方法については、https://en.wikipedia.org/wiki/PowerShellを参照してください。 – GhostCat

+0

GhostCatが言及したように、PowerShellを使うことができます。 Windowsのバッチも別のオプションです。一度書き込むと、複数回実行する必要がある場合は、Windowsタスクスケジューラを使用できます。 –

答えて

0

このようなもの。

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 
      } 
     } 
    } 
0

名前を持つファイルを作成し、ファイル内の以下の内容を貼り付けると、ファイルの数千を持っているフォルダ内に置き、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に指定されたファイルの数を入れます。

+0

これは動作していません – Ela

+0

@Ela何が動作していません私は自分のフォルダとその作業でこれを試しましたが、移動したいファイル拡張子は何ですか?この行の拡張子 'FOR %% f IN(* .jpg)DO'をあなたの拡張子' * .jpg'に '* .txt'または何か他のものに変更してください –

+0

それは感謝しました。そのフォルダにはさまざまな形式のファイルが含まれていました。それが問題だった – Ela

関連する問題