К чему это приводит. Любой пользователь w2000 с самыми обычными правами может, как оказалось, установить этот атрибут для своего файла, а администраторы не смогут никаким образом его открыть. В частности, файлы *.wav отказывается проигрывать windows Media player. Всё, что может сделать админ-удалить или перименовать файл. А у меня было заблуждение, что админу доступно всё!!!
А вопрос вот , собствено, в чём. Раньше я рассчитывал размер файла таким образом:
Public Function FileSize(FilePath As String) As Double
Dim Pointer As Long
Dim lpFSHigh As Long 'старший разряд
Dim lpFSLow As Long 'младший
On Error Resume Next
Err.Clear
Pointer = lopen(FilePath, OF_READ)
If Pointer < 0 Then
Err.Clear
Exit Function
End If
'e = Err.LastDllError
'If e <> 0 Then Exit Function
lpFSLow = GetFileSize(Pointer, lpFSHigh)
If lpFSLow >= 0 Then
FileSize = lpFSLow
Else
FileSize = 2 ^ 32 + lpFSLow
End If
FileSize = FileSize + 2 ^ 32 * lpFSHigh
lclose Pointer
End Function
Это всё работает для обычных файлов, в том числе большого размера.
А для чужих зашифрованных файлов выдаётся размер 0.
По всей видимости, файл не открывается на чтение (переменная Pointer<0).
В связи с этим встаёт 2 вопроса:
1) можно ли открыть зашифрованный файл через lopen и если да, то какой тип доступа должен быть
2) если нельзя, то как получить манипулятор файла с атрибутом "зашифрованный".
Что вообще можно делать с таким файлами, раз их и читать нельзя?