//--- montrons la fenêtre des paramètres d'entrée au lancement du script
#property script_show_inputs
//--- les paramètres d'entrée
input ulong InpThresholdSize=20; // la frontière de la taille des fichiers en kilooctets
input string InpBigFolderName="big"; // le dossier pour les grands fichiers
input string InpSmallFolderName="small"; // le dossier pour les petits fichiers
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
string file_name; // la variable pour la sauvegarde des noms des fichiers
string filter="*.csv"; // le filtre pour la recherche des fichiers
ulong file_size=0; // la taille du fichier en octets
int size=0; // le nombre de fichier
//--- imprimons la voie vers le dossier dans lequel on va travailler
PrintFormat("Travaillons dans le dossier %s\\Files\\",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
//--- la réception du handle de la recherche dans la racine du dossier total de tous les terminaux
long search_handle=FileFindFirst(filter,file_name,FILE_COMMON);
//--- vérifions si la fonction FileFindFirst() a travaillé avec succès
if(search_handle!=INVALID_HANDLE)
{
//--- dans le cycle nous déplaçons les fichiers en fonction de leur taille
do
{
//--- ouvrons le fichier
ResetLastError();
int file_handle=FileOpen(file_name,FILE_READ|FILE_CSV|FILE_COMMON);
if(file_handle!=INVALID_HANDLE)
{
//--- recevrons la taille du fichier
file_size=FileSize(file_handle);
//--- fermons le fichier
FileClose(file_handle);
}
else
{
PrintFormat("On n' a pas réussi à ouvrir le fichier %s, le code de l'erreur = %d",file_name,GetLastError());
continue;
}
//--- imprimons la taille du fichier
PrintFormat("La taille du fichier %s est égal au %d octets",file_name,file_size);
//--- définirons la voie pour le déplacement du fichier
string path;
if(file_size>InpThresholdSize*1024)
path=InpBigFolderName+"//"+file_name;
else
path=InpSmallFolderName+"//"+file_name;
//--- déplaçons le fichier
ResetLastError();
if(FileMove(file_name,FILE_COMMON,path,FILE_REWRITE|FILE_COMMON))
PrintFormat("Le fichier %s est déplacé",file_name);
else
PrintFormat("L'erreur, le code = %d",GetLastError());
}
while(FileFindNext(search_handle,file_name));
//--- fermons le handle de la recherche
FileFindClose(search_handle);
}
else
Print("Files not found!");
}
|