Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 | 2 |

 

  Вопрос: Програмно Удалить,очистить Добавлено: 26.12.08 09:04  

Автор вопроса:  Edik
Привет.у меня прозба.Как програмно удалить всё содержимое (папки ,файлы и всё другое)
Из корзины C:\Recycled и
из C:\Documents and Settings\Админстратор\Local Settings\Temp.
Kill , Rmdir и NewFSO As New FileSystemObject не помогли.
KILL(“C:\Recycled\*.*”).Эта команда папки(в тои числе вложенные) с файлами не удаляет.
И ешё руские
буквы в коде заменяються на ??????? .что посоветуете.Спасибо

Ответить

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

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



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #1 Добавлено: 26.12.08 10:29
RD /F /S /Q C:\TEMP\
за ключи не отвечаю

Ответить

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



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #2 Добавлено: 26.12.08 10:32
Хотя нет, сначала
DEL /F /S /Q C:\TEMP\*.*
а потом RD

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #3 Добавлено: 26.12.08 11:09
Хороший вопрос, однако. А как аппаратно удалить всё содержимое?

Ответить

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



Вопросов: 0
Ответов: 159
 Профиль | | #4 Добавлено: 26.12.08 11:38
Не знаю как аппаратно, наверно винчестер выкинуть, а программно: по-моему через SHFileOperation.

Ответить

Номер ответа: 5
Автор ответа:
 Edik



Вопросов: 1
Ответов: 6
 Профиль | | #5 Добавлено: 26.12.08 18:37
Спасибо за ответ.но я не смог написать эти дос команды .помогите плз написать
Код

Ответить

Номер ответа: 6
Автор ответа:
 Edik



Вопросов: 1
Ответов: 6
 Профиль | | #6 Добавлено: 26.12.08 18:39
SmithСпасибо за ответ.но я не смог написать эти дос команды .помогите плз написать
Код

Ответить

Номер ответа: 7
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #7 Добавлено: 26.12.08 20:57
Я так понял пример нужен на VB6
Shell "del .....", vbHide
Shell "rd .....", vbHide
это примитивный способ, есть еще несколько грамотных методов, но они сложнее.

Ответить

Номер ответа: 8
Автор ответа:
 Edik



Вопросов: 1
Ответов: 6
 Профиль | | #8 Добавлено: 27.12.08 09:55
SmithСпасбо за ответ.Боюсь надоел вас.Вот все варианты которые я смог написать Ответ файл нот фоунд.А он у меня есть.
Private Sub Command1_Click()
 ;Dim rc As Double
 ;Dim rs As Double
  'rc = Shell(del("E:\TEMP\*.*", vbHide))
  'rs = Shell("rd E:\TEMP\", vbHide)
   'Shell "del c:\TEMP\*.*", vbHide
  'Shell "del /F /S /Q (E:\TEMP\*.*)", vbHide
' Shell "rd /F /S /Q E:\TEMP\", vbHide
End Sub


Если что нибудь не получится могу ли обратиться к вам за помощью.У меня ещё такой вопрос.какие папки надо регулярно очишать ,что бы винде было легче.ХР SP2,SP3

Ответить

Номер ответа: 9
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #9
Добавлено: 27.12.08 15:59
Так антивирус буит ругаться, ребята =)

  1. Private Type SHFILEOPSTRUCT
  2.         hwnd As Long
  3.         wFunc As Long
  4.         pFrom As String
  5.         pTo As String
  6.         fFlags As Integer   ' Note alignment warning
  7.         fAnyOperationsAborted As Long
  8.         hNameMappings As Long
  9.         lpszProgressTitle As Long '  Alignment warning!!
  10. End Type
  11. Const FO_DELETE = 3
  12. Const FOF_NOCONFIRMATION = &H10
  13. Const FOF_NOERRORUI = &H400
  14. Const FOF_SILENT = 4
  15. Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
  16. Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
  17. Private Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hwnd As Long, ByVal RootPath As String, ByVal dwFlags As Long) As Long
  18. Const SHERB_NOCONFIRMATION = 1
  19. Const SHERB_NOPROGRESSUI = 2
  20. Const SHERB_NOSOUND = 4
  21.  
  22. Private Sub Form_Load()
  23.     ' чистим корзину
  24.     If (SHEmptyRecycleBin(0, vbNullString, SHERB_NOCONFIRMATION Or SHERB_NOPROGRESSUI Or SHERB_NOSOUND) <> S_OK) Then
  25.         MsgBox "Ошибка при очистке корзины."
  26.     End If
  27.     ' получаем путь к папке временных файлов
  28.     Dim tempPath As String
  29.     tempPath = String(260, 0)
  30.     Dim ret As Long
  31.     ret = GetTempPath(260, tempPath)
  32.     tempPath = Left$(tempPath, ret)
  33.     ' чистим папку со временными файлами
  34.     Dim SH As SHFILEOPSTRUCT
  35.     SH.wFunc = FO_DELETE
  36.     ' строка должна быть завершена двумя null-символами поэтому добавим еще один
  37.     SH.pFrom = tempPath & "*" & vbNullChar
  38.     SH.fFlags = FOF_NOCONFIRMATION Or FOF_NOERRORUI Or FOF_SILENT
  39.     ' эта функа споткнется на первом занятом файле и дальше удалять ничего не будет, так что лучше уж рекурсивно подпапки просмотреть.
  40.     ret = SHFileOperation(SH)
  41. End Sub

Ответить

Номер ответа: 10
Автор ответа:
 



Вопросов: 0
Ответов: 2
 Профиль | | #10 Добавлено: 27.12.08 20:43
Листинг VBS скрипта, очищающего содержимое заданной папки, с ним можно поупражняться сохранив его в файле с расширением VBS или подкорректировав разместить в модуле.
Dim FSO
Dim theFolder, s, i
Set FSO = CreateObject("Scripting.FileSystemObject";)
s = InputBox("Имя папки", "Очистить содержимое", "C:\Recycled";)
On Error Resume Next
if len(s) = 0 Then 'Quit
Else
i = Len(Dir(s, vbDirectory))
If i = 0 Then
MsgBox "Каталога не существует"
Else
Set theFolder = FSO.GetFolder(s)
WorkWithSubFolders theFolder
End If
End If
Err.Clear
Set FSO = Nothing
Sub WorkWithSubFolders(ByVal AFolder)
  Dim MoreFolders, TempFolder
  KillFilesWithExtensionIn AFolder
  Set MoreFolders = AFolder.SubFolders
  For Each TempFolder In MoreFolders
    WorkWithSubFolders TempFolder
    TempFolder.Delete
  Next
End Sub
Sub KillFilesWithExtensionIn(AFolder)
Dim AFile, theFiles
  On Error Resume Next
  Set theFiles = AFolder.Files
  For Each AFile In theFiles
      AFile.Delete
  Next
End Sub
Евгений.

Ответить

Номер ответа: 11
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #11
Добавлено: 27.12.08 23:39
Ник поменяй, человек =)

Ответить

Номер ответа: 12
Автор ответа:
 Edik



Вопросов: 1
Ответов: 6
 Профиль | | #12 Добавлено: 28.12.08 09:54
ExecutionerСПАСИБО ОГРОМНОЕ.Хотя для меня всё это огромный тёмный лес, но Я поупрожняюсь.Надеюсь от мастеров к чему нибудь научусь.Я за ранее хочу написать директории в программе чтоб прога при запуске сама очищала папки (корзину,Темп,интернет мусор,кукиес,Prefetch и др.)Посоветуйте если что. СПАСИБО ОГРОМНОЕ

Ответить

Номер ответа: 13
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #13
Добавлено: 28.12.08 13:57
Есть такая функция... Environ(ИМЯ_ПЕРЕМЕННОЙ), так вот она переменные окружения выводит. Полезно тебе будет, ибо там многие пути указаны (в т.ч. путь до профиля пользователя, относительно которого можно и инет-кеш найти, и временную папку и т.д.)

Ответить

Номер ответа: 14
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #14
Добавлено: 28.12.08 15:50
Executioner, но ведь эти переменные можно изменить из нелюбви к людям. Тогда будет не работать. разве не так?

Ответить

Номер ответа: 15
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #15
Добавлено: 29.12.08 02:40
Тогда и винда не будет путево работать =)

Ответить

Страница: 1 | 2 |

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



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