//--- script çalıştığında giriş parametrelerinin penceresini göster
#property script_show_inputs
//--- giriş parametreleri
input ulong InpThresholdSize=20; // kilobayt bazında dosya boyutu
input string InpBigFolderName="big"; // büyük dosyalar için klasör
input string InpSmallFolderName="small"; // küçük dosyalar için klasör
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
string file_name; // isimleri depolamak için bir değişken
string filter="*.csv"; // dosyaların aranması için filtre
ulong file_size=0; // bayt bazında dosya büyüklüğü
int size=0; // dosyaların sayısı
//--- çalışacağımız dosyanın adresini çıktıla
PrintFormat("%s\\Files\\ klasöründe çalışılıyor",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
//--- arama işleyicisini, tüm terminallerin ortak kök klasöründe al
long search_handle=FileFindFirst(filter,file_name,FILE_COMMON);
//--- FileFindFirst() fonksiyonu başarıyla uygulanmış mı kontrol et
if(search_handle!=INVALID_HANDLE)
{
//--- dosyaları boyutlarına göre döngü içinde taşı
do
{
//--- dosyayı aç
ResetLastError();
int file_handle=FileOpen(file_name,FILE_READ|FILE_CSV|FILE_COMMON);
if(file_handle!=INVALID_HANDLE)
{
//--- dosya boyutunu al
file_size=FileSize(file_handle);
//--- dosyayı kapa
FileClose(file_handle);
}
else
{
PrintFormat("%s dosyası açılamadı, Hata kodu = %d",file_name,GetLastError());
continue;
}
//--- dosya boyutunu çıktıla
PrintFormat("%s dosyasının boyutu %d bayttır",file_name,file_size);
//--- dosyanın taşınacağı hedef adresi tanımla
string path;
if(file_size>InpThresholdSize*1024)
path=InpBigFolderName+"//"+file_name;
else
path=InpSmallFolderName+"//"+file_name;
//--- dosyayı taşı
ResetLastError();
if(FileMove(file_name,FILE_COMMON,path,FILE_REWRITE|FILE_COMMON))
PrintFormat("%s dosyası taşındı",file_name);
else
PrintFormat("Hata, kod = %d",GetLastError());
}
while(FileFindNext(search_handle,file_name));
//--- arama işleyicisini kapa
FileFindClose(search_handle);
}
else
Print("Dosyalar bulunamadı!");
}
|