Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти файлы и определить по имени их дату? 
:(
    Опции темы
Nicholas
  Дата 13.5.2015, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 30.9.2004

Репутация: нет
Всего: 0



Переделал честно сворованный здесь  VBS код...
Код

'Создаём и запускаем диалог выбора корневой папки
'Set objShell = CreateObject("Shell.Application")
'Set objFolder = objShell.BrowseForFolder(0, "Select a folder:", 0) 
'Если пользователь не выбрал папку, завершаем приложение
'If objFolder Is Nothing Then Wscript.Quit
'Получаем путь к выбранной папке
'objPath = objFolder.Self.Path
'--------------------------------------------------------------
' или укажем папку сами)
' Определить переменные
Dim fso, fldr, f, newfiles
' Получить объект для работы с файловой системой
Set fso = CreateObject("Scripting.FileSystemObject")
' Подключиться к нужному каталогу - тут можешь подставить свой
objPath  = fso.GetFolder("archives")
'--------------------------------------------------------------
'Создаем объект папки файловой системы 
'и отправляем его в рекурсивную функцию
Set FSO = CreateObject("Scripting.FileSystemObject")
ShowSubFolders FSO.GetFolder(objPath)
'Сигнализируем о завершении программы
Wscript.Echo "PROFIT in " & objPath
'Функция рекурсивного обхода папок
Sub ShowSubFolders(Folder)
'Перебираем подпапки
 For Each Subfolder in Folder.SubFolders
'В каждой подпапке Subfolder делаем нужное нам черное дело
'Например, выводим её имя
  ' Wscript.Echo Subfolder.Name
  set fldr = folder
   For Each f In fldr.Files
    ' Если дата создания меньше, чем текущая минус 1 месяц
    ' Можешь использовать другие его свойства, например, .DateLastModified
    'If f.DateCreated < DateAdd("d", -10, Now()) Then
       ' Удалить файл
     WScript.Echo "Удаление файла старше 10 дней" & vbCrLf & f
        ' удаляем файл если есть новые файлы
    '    if newfiles = 1 then
            'f.Delete
    '    End If
    'end if
Next
'Рекурсивно вызываем функцию для подпапок текущей папки
   ShowSubFolders Subfolder
  Next
End Sub
'PROFIT...


но все равно, что то меня тянет сделать это на SQL )))

Добавлено через 2 минуты и 22 секунды
чуть поправил взял отсюда...
Код

'Создаём и запускаем диалог выбора корневой папки
'Set objShell = CreateObject("Shell.Application")
'Set objFolder = objShell.BrowseForFolder(0, "Select a folder:", 0) 
'Если пользователь не выбрал папку, завершаем приложение
'If objFolder Is Nothing Then Wscript.Quit
'Получаем путь к выбранной папке
'objPath = objFolder.Self.Path
'--------------------------------------------------------------
' или укажем папку сами)
' Определить переменные
Dim fso, fldr, f, newfiles
' Получить объект для работы с файловой системой
Set fso = CreateObject("Scripting.FileSystemObject")
' Подключиться к нужному каталогу - тут можешь подставить свой
objPath  = fso.GetFolder("archives")
'--------------------------------------------------------------
'Создаем объект папки файловой системы 
'и отправляем его в рекурсивную функцию
Set FSO = CreateObject("Scripting.FileSystemObject")
ShowSubFolders FSO.GetFolder(objPath)
'Сигнализируем о завершении программы
Wscript.Echo "PROFIT in " & objPath
'Функция рекурсивного обхода папок
Sub ShowSubFolders(Folder)
'Перебираем подпапки
 For Each Subfolder in Folder.SubFolders
'В каждой подпапке Subfolder делаем нужное нам черное дело
'Например, выводим её имя
  ' Wscript.Echo Subfolder.Name
  set fldr = folder
   For Each f In fldr.Files
    ' Если дата создания меньше, чем текущая минус 1 месяц
    ' Можешь использовать другие его свойства, например, .DateLastModified
    'If f.DateCreated < DateAdd("d", -10, Now()) Then
       ' Удалить файл
     WScript.Echo "Удаление файла старше 10 дней" & vbCrLf & f
        ' удаляем файл если есть новые файлы
    '    if newfiles = 1 then
            'f.Delete
    '    End If
    'end if
Next
'Рекурсивно вызываем функцию для подпапок текущей папки
   ShowSubFolders Subfolder
  Next
End Sub
'PROFIT...


но хочу на sql...
PM MAIL ICQ   Вверх
Akina
Дата 13.5.2015, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(Nicholas @  13.5.2015,  12:37 Найти цитируемый пост)
Код

' Создаем объект папки файловой системы 
' и отправляем его в рекурсивную функцию
Set FSO = CreateObject("Scripting.FileSystemObject")

Нахрена? у тебя ж FSO уже создан...
И у тебя не все переменные определены. Что, кстати, может породить проблемы, ибо не определена область видимости переменной Subfolder.

Цитата(Nicholas @  13.5.2015,  12:37 Найти цитируемый пост)
меня тянет сделать это на SQL 

Ну делай...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.