Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: нахождение новых файлов Добавлено: 20.05.10 19:31  

Автор вопроса:  n0mid | ICQ: 126334 
Здравствуйте.
У меня проблема.
Есть определенная директория в которой надо проверить есть ли новые файлы (файлы, время создание у которых не более 5 минут назад). Алгоритм довольно таки простой, нужно получить список всех файлов в заданой директории, и проверять дату создания каждого файла и отправлять на почту. последний модуль у меня есть, но первые два никак не могу сделать, так как вообще ниче не понимаю в vb)

заранее спасибо)

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #1 Добавлено: 20.05.10 19:50
вот скриптик (vbs) для удаление устаревших файлов и создания лога

  1.  
  2. Option Explicit
  3. On Error Resume Next
  4. dim sPath, sTime, lTimeDiff, sExtension, IsDel, AskIfDel
  5.  
  6.  
  7. IsDel = MsgBox("Удалять устаревшие файлы?" & Chr(13) & Chr(10) & "(в противном случае все устаревшие файлы будут перечислены в логе без удаления)", 4 + 32, "Удаление устаревших файлов...")
  8. If IsDel = 6 Then AskIfDel = MsgBox("Спрашивать разрешение удалить устаревший файл?", 4 + 32, "Удаление устаревших файлов...")
  9.  
  10. sPath = InputBox("Путь поиска устаревших файлов" & Chr(13) & Chr(10) & "(в подпапках также будет произведен поиск)", "Удаление устаревших файлов...", "C:\")
  11. If sPath = "" Then Wscript.quit
  12.  
  13. sTime = InputBox("Формат поиска разницы" & Chr(13) & Chr(10) & "yyyy — Год" & Chr(13) & Chr(10) & "m  — Месяц" & Chr(13) & Chr(10) & "d  — День" & Chr(13) & Chr(10) & "h  — Часы" & Chr(13) & Chr(10) & "n  — Минуты", "Удаление устаревших файлов...", "d")
  14. If (sTime <> "yyyy") and (sTime <> "m") and (sTime <> "d") and (sTime <> "h") and (sTime <> "n") Then Wscript.quit
  15.  
  16. lTimeDiff = InputBox("Количество поиска разницы", "Удаление устаревших файлов...", "1")
  17. If IsNumeric(lTimeDiff) = True Then
  18. If lTimeDiff < 1 Then Wscript.quit
  19. Else
  20. Wscript.quit
  21. End If
  22.  
  23. sExtension = InputBox("Искать только определенного расширения файлы?", "Удаление устаревших файлов...", "exe,com,bat,vbs,vbe,wsh,js,dll,inf")
  24.  
  25.  
  26. WScript.Echo("Поиск устаревших файлов...")
  27.  
  28.  
  29. FindInFolder (sPath)
  30. FindInSubFolders (sPath)
  31. set sPath = nothing
  32. set sTime = nothing
  33. set lTimeDiff = nothing
  34. set sExtension = nothing
  35. set IsDel = nothing
  36. set AskIfDel = nothing
  37. WScript.Echo("Поиск завершен!")
  38. Wscript.quit
  39.  
  40.  
  41.  
  42.  
  43.  
  44. Sub FindInSubFolders(folderspec)
  45. On Error Resume Next
  46. Dim f, f1, sf, fso
  47. Set fso = CreateObject("Scripting.FileSystemObject")
  48. Set f = fso.GetFolder(folderspec)
  49. Set sf = f.SubFolders
  50. For Each f1 In sf
  51. FindInFolder (f1.Path)
  52. FindInSubFolders (f1.Path)
  53. Next
  54. End Sub
  55.  
  56.  
  57. Sub FindInFolder(folderspec)
  58. On Error Resume Next
  59. Dim f, f1, fc, ext, s, fso, i, ExtensionArray, ArrayLine, ArrayCount, DelOrNot
  60. Set fso = CreateObject("Scripting.FileSystemObject")
  61. Set f = fso.GetFolder(folderspec)
  62. Set fc = f.Files
  63.  
  64. For Each f1 In fc
  65. ext = fso.GetExtensionName(f1.Path)
  66. ext = LCase(ext)
  67. s = LCase(f1.Name)
  68.  
  69.  If sExtension = ""  Then
  70.  
  71. Set f = fso.getfile(wscript.scriptfullname)
  72. i = DateDiff(sTime, f1.DateCreated, Now)
  73.  
  74. If i < CLng(lTimeDiff) Then
  75. Log(f1.path)
  76.   If IsDel = 6 Then
  77.      If AskIfDel = 6 Then
  78. DelOrNot = MsgBox("Удалить устаревший файл?" & Chr(13) & Chr(10) & f1.path, 4 + 32, "Удаление устаревших файлов...")
  79. If DelOrNot = 6 Then fso.deletefile(f1.path)
  80.      Else
  81. fso.deletefile(f1.path)
  82.      End If
  83.   End If
  84. End If
  85.  
  86.  Else
  87.  
  88.     ExtensionArray = Split(sExtension, ",")
  89.     ArrayLine = UBound(ExtensionArray)
  90.  
  91.     For ArrayCount = 0 to ArrayLine
  92. 'msgbox Trim(ExtensionArray(ArrayCount)) & Chr(13) & Chr(10) & ArrayCount
  93. If (ext = Trim(LCase(ExtensionArray(ArrayCount)))) Then
  94. Set f = fso.getfile(wscript.scriptfullname)
  95. i = DateDiff(sTime, f1.DateCreated, Now)
  96.  
  97. If i < CLng(lTimeDiff) Then
  98. Log(f1.path)
  99.   If IsDel = 6 Then
  100.      If AskIfDel = 6 Then
  101. DelOrNot = MsgBox("Удалить устаревший файл?" & Chr(13) & Chr(10) & f1.path, 4 + 32, "Удаление устаревших файлов...")
  102. If DelOrNot = 6 Then fso.deletefile(f1.path)
  103.      Else
  104. fso.deletefile(f1.path)
  105.      End If
  106.   End If
  107. End If
  108. Exit For
  109. End If
  110.     Next
  111.  
  112.  End If
  113.  
  114. Next
  115. End Sub
  116.  
  117.  
  118. 'функция для создания log-файла. он создается рядом со скриптом, имя - дата запуска скрипта.
  119. Function Log(strLineToLog)
  120. On Error Resume Next
  121.    Const ForReading = 1, ForWriting = 2
  122.    Dim fso, f, r, FileLog
  123.    r = ""
  124.  
  125.    FileLog = Left(WScript.ScriptName,(Len(WScript.ScriptName)-4)) & "_" & DatePart("yyyy",Date) & "_" & DatePart("m",Date) & "_" & DatePart("d",Date) & "." & "log"
  126.    Set fso = CreateObject("Scripting.FileSystemObject")
  127.  
  128.    If (fso.FileExists(FileLog)) Then
  129.       Set f = fso.OpenTextFile(FileLog, Forreading, True)
  130.       r = f.Readall
  131.       f.Close
  132.       Set f = fso.OpenTextFile(FileLog, ForWriting, True)
  133.       f.Write strLineToLog & Chr(13) & Chr(10) & r
  134.       f.Close
  135.    Else
  136.       Set f = fso.OpenTextFile(FileLog, ForWriting, True)
  137.       f.Write strLineToLog
  138.       f.Close
  139.    End If
  140. End Function
  141.  
  142.  
  143.  
  144. 'DATEDIFF(datepart,startdate,enddate)
  145. 'datepart:
  146. 'yyyy — Год  
  147. 'q  — Квартал
  148. 'm  — Месяц
  149. 'y  — День года
  150. 'd  — День месяца
  151. 'w  — День недели
  152. 'ww  — Неделя
  153. 'h  — Часы
  154. 'n  — Минуты
  155. 's  — Секунды

Ответить

Номер ответа: 2
Автор ответа:
 n0mid



ICQ: 126334 

Вопросов: 1
Ответов: 3
 Профиль | | #2 Добавлено: 20.05.10 20:11
Just
Спасибо большое. только мне нужно на vb.net

Ответить

Номер ответа: 3
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #3 Добавлено: 20.05.10 22:29
ну тогда может это поможет приблизиться к цели... )
http://www.cyberforum.ru/csharp-net/thread95777.html

Ответить

Номер ответа: 4
Автор ответа:
 n0mid



ICQ: 126334 

Вопросов: 1
Ответов: 3
 Профиль | | #4 Добавлено: 20.05.10 22:55
спасибо!)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам