FireFenix писал(а):Зачем, зачем создавать временные файлы? А уж тем более даже если создаёшь, то их не подчищать
FireFenix писал(а):MSI пакеты это вообще отдельный разговор... Чистая система стоит на С:\, а временные файлы инстеллера идут не на C:\Windows\Temp, не C:\Temp и даже не на C:\, а чётко в корень D:\ ... Это просто добивает. Что они там забыли?
FireFenix писал(а):Ладно только WinRAR, ставлю DDK... И что вы думаете? Нельзя выбрать путь, который содержит пробел. Мы в каком веке? Я не могу
jangle писал(а):FireFenix писал(а):Зачем, зачем создавать временные файлы? А уж тем более даже если создаёшь, то их не подчищать
Временные файлы необходимы для работы многих программ, и забота об их удалении лежит на пользователе.
jangle писал(а):FireFenix писал(а):MSI пакеты это вообще отдельный разговор... Чистая система стоит на С:\, а временные файлы инстеллера идут не на C:\Windows\Temp, не C:\Temp и даже не на C:\, а чётко в корень D:\ ... Это просто добивает. Что они там забыли?
MSI пишет временные файлы на тот диск, где больше всего места. Если будет воткнута флешка, и на ней будет больше места чем на локальных дисках, временные файлы будут писаться туда.
У MS вообще какой-то рак.
Хакер писал(а):FireFenix писал(а):Ладно только WinRAR, ставлю DDK... И что вы думаете? Нельзя выбрать путь, который содержит пробел. Мы в каком веке? Я не могу
Тут есть уважительная причина
FireFenix писал(а):Ммм?
Помню давно когда-то ставил DDK и он спокойно становился в Program Files, а щас что-то не то...
Хакер писал(а):Так вот, несмотря на длинные пути с пробелами, для драйверов всё-таки лучше 8.3 без пробелов.
Qwertiy писал(а):NTFS поддерживает такие имена параллельно с длинными. Только вот MS почему-то хочет отключить их создание... Или уже?
Хакер писал(а):Причина в том, что там есть примеры драйверов, да и сами разрабатываемые драйверу, очень вероятно, останутся там же. И так же вероятно, что ты захочешь загружать их. Так вот, несмотря на длинные пути с пробелами, для драйверов всё-таки лучше 8.3 без пробелов.
Хакер писал(а):Достаточно хотя бы посмотреть на имена файлов из папки system32\drivers. Есть драйверы с длинными именами?
FireFenix писал(а):KEYBOARD.SYS
FireFenix писал(а):Everest'y (ныне AID'a), FileMon и прочим ни чего не мешает загружать драйвера где бы они не находились, уж не говоря об инсталлерах драйверов
Хакер писал(а):Qwertiy писал(а):NTFS поддерживает такие имена параллельно с длинными. Только вот MS почему-то хочет отключить их создание... Или уже?
О чём вообще речь?
Qwertiy писал(а):О том, что при желании можно использовать 8.3 даже когда это не так.
Хакер писал(а):Пример того, о чём ты говоришь?
C:\Program Files\Microsoft Visual Studio 10.0\Microsoft Visual Web Developer 2010 Express - ENU\vs_setup.MSI
C:\PROGRA~1\MICROS~1.0\MICROS~4\vs_setup.MSI
Хакер писал(а):Достаточно хотя бы посмотреть на имена файлов из папки system32\drivers. Есть драйверы с длинными именами?
Apowersoft_AudioDevice.sys
blueletaudio.sys
BlueletSCOAudio.sys
BTNetFilter.sys
CSVirtualDiskDrv.sys
DigiartyVirtualCDBus.sys
NHCDRIVER.SYS
PROCMON20.SYS
ShredderDriver32.sys
SmartDefragDriver.sys
VBoxNetAdp.sys
VBoxNetFlt.sys
VBoxUSBMon.sys
Qwertiy писал(а):Хакер писал(а):Пример того, о чём ты говоришь?
- Код: Выделить всё
C:\Program Files\Microsoft Visual Studio 10.0\Microsoft Visual Web Developer 2010 Express - ENU\vs_setup.MSI
C:\PROGRA~1\MICROS~1.0\MICROS~4\vs_setup.MSI
Хакер писал(а):Ты и вправду думаешь, что фича XXXXXX~Y имеет какое-то отношение к NTFS?
Alec писал(а):А чем это напрягает?
Intel Xeon мешает. Они на нем бсодят. Происходит это в момент "Определение частоты процесора...".Everest'y (ныне AID'a), FileMon и прочим ни чего не мешает
Хакер писал(а):Разработчики FireFox-а с помощью критических апдейтов преднамеренно снижают его производительность, чтобы принудить консерваторов, сидящих на 3-ей версии, перейти на самую последнюю (9 или 10, какая там сейчас?)...
Antonariy писал(а):Походу они все левые.Qwertiy писал(а):Есть - среди 325 файлов *.sys 13 не 8.3
Alec писал(а):Я имею ввиду, при чем тут именно 8.3. Насколько мне помнится, в FAT32 (да и в NTFS при определенных настройках) длинные кириллические имена также усекаются до кириллических 8.3. А что до умных программ - папка "Мои документы" -> МОИДОК~1
Proxy писал(а):Думаю у них есть чем заняться и без этого. У этих ребят сплошь везде и всюду проблемы, не успеют от одной отделаться, как на замену другая находится. То с HTML5 куча без была, в т.ч. лицензионных препирательств (H.264 это вообще какая-то откровенная промашка консорциума), то с производительностью разобраться всё никак не могут (и не только Firefox, Thunderbird это тоже в полной мере касается, хотя у того и своих проблем нерешённых накопился вагон), то размер кода представляет проблему для компиляции под 32х разрядные windows (и firefox пришлось урезать, помнится, потом обещали оптимизировать).
'///////////////////////////////////////////////////////////////////////////////////////
' Dustman.exe - утилита для очистки папки TEMP
' Jangle (c) 2008
'///////////////////////////////////////////////////////////////////////////////////////
#Compile Exe "Dustman.exe"
#Resource "DustMan.pbr"
#Dim All
#Optimize Speed
#Include "win32api.inc"
%NaturalDay = 24 * 60 * 60 * 10000000 ' 24 HOURS AS 1/100 NANOSECS UNITS
Union LARGETIME
ft As FILETIME
qt As Quad
End Union
Macro GetFiles(sSrch) = GetFilesEx(sSrch, %FALSE, %FALSE)
Macro GetFolders(zCriteria) = GetFilesEx(zCriteria + "\", %False, %True)
Sub AddToBootUp(AppDesc As Asciiz, AppPath As Asciiz)
Dim hKey As Long
RegOpenKey %HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", hKey
If hKey Then RegSetValueEx hKey, AppDesc, ByVal %Null, %REG_SZ, AppPath, Len(AppPath): _
RegCloseKey hKey
End Sub
Function ToDay() As Long
Local st As SYSTEMTIME, lt As LARGETIME
GetLocalTime st
SystemTimeToFileTime st, lt.ft
Function = lt.qt \ %NaturalDay
End Function
Sub DeleteTempFiles(directory As String, mask As String)
Local fd As WIN32_FIND_DATA, fh As Long, NextFile As Long
Local szFileMask As Asciiz * %MAX_PATH
Local lt As LARGETIME, DayNbr As Long
szFileMask = directory + mask + Chr$(0)
fh = FindFirstFile(szFileMask, fd)
If fh = %INVALID_HANDLE_VALUE Then Exit Sub
Do
FileTimeToLocalFileTime fd.ftLastWriteTime, lt.ft
DayNbr = lt.qt \ %NaturalDay
If DayNbr < ToDay Then
Kill directory + fd.cFileName
End If
NextFile = FindNextFile(fh, fd)
Loop Until NextFile = 0
FindClose fh
End Sub
Function FSO_IsValidFolder(ByVal Path$)Export As Long
Local Tmp$,FS$,SH$
Path$ = UCase$(RTrim$(Path$,Any " \")) & "\"
If (Mid$(Path$,1,1)>= "A" And Mid$(Path$,1,1)<="Z") And (Mid$(Path$,2,1)=":") Then
Tmp$ = Mid$(Path$,1,2) & "\"
Function = (Tmp$ <> Path$)
ElseIf Mid$(Path$,1,2)="\\" Then
FS$ = RTrim$(Parse$(Path$,"\",3))
SH$ = RTrim$(Parse$(Path$,"\",4))
If Len(FS$)< 2 Then Function = 0:Exit Function
If Len(SH$) < 1 Then Function = 0:Exit Function
Tmp$ = "\\" & FS$ & "\" & SH$ & "\"
Function = (Tmp$ <> Path$)
Else
Function = 0
End If
End Function
Function FSO_FolderExists(ByVal FolderSpec$)Export As Long
Local fd As WIN32_FIND_DATA
Local fAttr As Dword
Local hFind&
If Len(FolderSpec$)=0 Then Function = 0:Exit Function
FolderSpec$ = RTrim$(FolderSpec$,Any " \")
hFind& = FindFirstFile(ByVal StrPtr(FolderSpec$), fd)
If hFind& = %INVALID_HANDLE_VALUE Then Function = 0 :Exit Function
Call FindClose(hFind&)
fAttr = fd.dwFileAttributes
Function = %True
If (Bit(fAttr, 4)=0) Or (Bit(fAttr,8)=1) Then Function = 0
End Function
Function FSO_DELTREE(ByVal PathSpec$,ByVal Force&) As Long
Local fd As WIN32_FIND_DATA
Local fAttr As Dword
Local hFind&, FilNamn$,ToRemove$
Local FilMask$,rc&
If Len(PathSpec$) = 0 Then Function = -100:Exit Function
If IsFalse FSO_IsValidFolder(PathSpec$) Then Function = -100:Exit Function
If IsFalse FSO_FolderExists(PathSpec$) Then Function = -100:Exit Function
On Error Resume Next
PathSpec$ = RTrim$(PathSpec$,Any " \") & "\"
FilMask$ = PathSpec$ & "*.*"
hFind& = FindFirstFile(ByVal StrPtr(FilMask$), fd)
If hFind& = %INVALID_HANDLE_VALUE Then Function = -100 :Exit Function
Do
FilNamn$ = RTrim$(fd.cFileName,Any Chr$(0,32))
If (Bit(fd.dwFileAttributes,4)= 0) Then
ToRemove$ = PathSpec$ & FilNamn$
If (Bit(fd.dwFileAttributes,0)= 1) And (Force& <> 0) Then
If IsFalse SetFileAttributes(ByVal StrPtr(ToRemove$),%FILE_ATTRIBUTE_NORMAL) Then
Call FindClose(hFind&)
Function = -100:Exit Function
End If
End If
If IsFalse DeleteFile(ByVal StrPtr(ToRemove$)) Then
Call FindClose(hFind&)
Function = -100:Exit Function
End If
Else
If FilNamn$ = "." Then Exit If
If FilNamn$ = ".." Then Exit If
ToRemove$ = PathSpec$ & FilNamn$
If FSO_DELTREE(ToRemove$,Force&)<> 0 Then
Call FindClose(hFind&)
Function = -100:Exit Function
End If
End If
If IsFalse FindNextFile(hFind&,fd) Then Call FindClose(hFind&):Exit Do
Loop
PathSpec$ = RTrim$(PathSpec$,"\")
fd.dwFileAttributes = GetFileAttributes(ByVal StrPtr(PathSpec$))
If (Bit(fd.dwFileAttributes,0)= 1) And (Force& <> 0) Then
If IsFalse SetFileAttributes(ByVal StrPtr(PathSpec$),%FILE_ATTRIBUTE_NORMAL) Then
Function = -100:Exit Function
End If
End If
If IsFalse RemoveDirectory(ByVal StrPtr(PathSpec$)) Then
Function = -100:Exit Function
End If
Function = 0
End Function
Function GetFilesEx(ByVal sSrch As String, Optional ByVal nSearchSubs As Long, Optional ByVal nDirsOnly As Long) As String
Local i As Long, p As Long, f As Long, zSearch As Asciiz * %MAX_PATH
Local sFiles As String, wfd As WIN32_FIND_DATA, hSearch As Long
Local zPath As Asciiz * %MAX_PATH, zCrit As Asciiz * %MAX_PATH, sSubFolders As String
zSearch = sSrch
Replace "/" With "\" In zSearch
zPath = UCase$(Left$(sSrch, InStr(-1, sSrch, Any "\")-1))
zCrit = UCase$(Mid$(sSrch, InStr(-1, sSrch, Any "\")+1))
zCrit = Mid$(zCrit, InStr(-1, zCrit, ".")+1)
hSearch = FindFirstFile(zPath + "\*.*", wfd)
If hSearch <> %INVALID_HANDLE_VALUE Then
Do
If (wfd.cFileName <> "") And (Peek(VarPtr(wfd.cFileName)) <> Asc(".")) Then
If (wfd.dwFileAttributes And %FILE_ATTRIBUTE_DIRECTORY) = %FILE_ATTRIBUTE_DIRECTORY Then
If (IsTrue nDirsOnly) Then sFiles = sFiles + RTrim$(zPath, Any "\/") + "\" + wfd.cFileName + "|"
If (IsTrue nSearchSubs) Then
sSubFolders = GetFilesEx(zPath + "\" + wfd.cFileName + "\*.", %True, %True)
If Len(sSubFolders) Then
sFiles = RTrim$(sFiles, "|")
For f = 1 To ParseCount(sSubfolders, "|")
sFiles = sFiles + GetFilesEx(Parse$(sSubFolders, "|", f) + "\*." + zCrit, %False, %False) + "|"
Next f
End If
End If
Else
If (IsFalse nDirsOnly) Then
If (zCrit = "*") Then
sFiles = sFiles + zPath + "\" + wfd.cFileName + "|"
Else
If Mid$(UCase$(wfd.cFileName), InStr(-1, wfd.cFileName, ".")+1) = zCrit Then sFiles = sFiles + zPath + "\" + wfd.cFileName + "|"
End If
End If
End If
End If
Loop While FindNextFile(hSearch, wfd)
FindClose hSearch
Function = RTrim$(sFiles, "|")
End If
End Function
Function PBMain
Local szTemp As Asciiz * %MAX_PATH, envSize As Long
Local folders As String
Local i As Long
envSize = GetEnvironmentVariable("TMP", szTemp, %MAX_PATH)
If envSize = 0 Then
envSize = GetEnvironmentVariable("TEMP", szTemp, %MAX_PATH)
End If
If envSize = 0 Then Exit Function
AddToBootUp "DustMan - clear TEMP folder", EXE.Full$
DeleteTempFiles szTemp + "\", "*.*"
folders= GetFolders(szTemp)
For i=1 To ParseCount(folders, Any "|")
Call FSO_DELTREE(Parse$ (folders, Any "|", i),0)
Next i
End Function
Хакер писал(а):Так вот, несмотря на длинные пути с пробелами, для драйверов всё-таки лучше 8.3 без пробелов.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6