Русское сообщество по скриптингу

Нужен скрипт для удаления файлов

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Нужен скрипт для удаления файлов

Сообщение Skriptar » 11 ноя 2010, 22:55

Нужен скрипт для удаления файлов по маске если они созданы более чем неделю назад.

[pawn]
    
#include <amxmodx>

    #define PLUGIN "Read Maps"
    #define VERSION "1.0"
    #define AUTHOR "DJ_WEST"

    
public plugin_init() 
    {
        
register_plugin(PLUGINVERSIONAUTHOR)
        
        new 
i_Dirs_File[128]
        
        
// Сохраняем указатель на директорию cstrike/maps в i_Dir
        
i_Dir open_dir("maps"s_Filecharsmax(s_File)) // Вот здесь просто cstrike мне надо
        
        // Проверяем существует ли директория
        
if (i_Dir)
        {
            
server_print("*** Demos ***")
        
            
// Пока next_file возвращает значения != 0 выводим карту в консоль
            
while (next_file(i_Dirs_Filecharsmax(s_File)))
            {
                
// Проверяем если первый символ файла равен '.', то не выводим
                // Функция считывает '.' и '..', которые не являются файлами, 
                // а просто говорят о том, что есть уровень каталога выше
                
if (s_File[0] == '.')
                    continue
                    
                
// Проверяем, чтобы файл содержал .bsp, что говорит нам о том, что это карта
                // Потому что в директории могут быть и другие файлы или директории
                
if (containi(s_File".dem") != -1)
                    
server_print(s_File)
            }
        }
    }
     
 
[/pawn]
Есть в amx возможность получить время создания файла ?
Я знаю только то, что я ничего не знаю.
Аватара пользователя
Skriptar
 
Сообщения: 953
Зарегистрирован: 20 окт 2009, 15:34
Благодарил (а): 180 раз.
Поблагодарили: 136 раз.
Языки программирования: Counter-Strike 1.6

Re: Нужен скрипт для удаления файлов

Сообщение Skriptar » 12 ноя 2010, 15:51

Как преобразовать строку "HLTV-1010241840-de_dust2.dem" в "101024" ?
Я знаю только то, что я ничего не знаю.
Аватара пользователя
Skriptar
 
Сообщения: 953
Зарегистрирован: 20 окт 2009, 15:34
Благодарил (а): 180 раз.
Поблагодарили: 136 раз.
Языки программирования: Counter-Strike 1.6

Re: Нужен скрипт для удаления файлов

Сообщение Fedcomp » 12 ноя 2010, 16:56

скопировать только 6 символов начиная с шестой позиции
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 815 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Нужен скрипт для удаления файлов

Сообщение Skriptar » 12 ноя 2010, 18:02

[pawn]
//  Script.js
//  Этот скрипт может удалить все файлы
var dir = "./cstrike";     //  из директории cstrike
var ext = /.dem$/;         //  с расширением .dem
var old = 14*24*60*60*1000; //  старше 14 дней

var fso = new ActiveXObject("Scripting.FileSystemObject");
var fc = new Enumerator(fso.GetFolder(dir).Files);
for (; !fc.atEnd(); fc.moveNext()) {
   var f = fc.item();
   if ((f.DateLastModified < new Date() - old) && f.Name.match(ext)) {
   // WScript.Echo("Delete:    " + f.Name);
       f.Delete(true);
   }
}
 [/pawn]
Короче closed
Я знаю только то, что я ничего не знаю.
Аватара пользователя
Skriptar
 
Сообщения: 953
Зарегистрирован: 20 окт 2009, 15:34
Благодарил (а): 180 раз.
Поблагодарили: 136 раз.
Языки программирования: Counter-Strike 1.6


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9