Столкнулся с такой проблемой, нужно обеспечить доступ к файлам, находящимся в скрытой папке.
Получается так, запись в файл идет без проблем, а вот чтение - ни в какую. Как решить проблему?
Kardinalli писал(а):Столкнулся с такой проблемой, нужно обеспечить доступ к файлам, находящимся в скрытой папке.
Получается так, запись в файл идет без проблем, а вот чтение - ни в какую. Как решить проблему?
Option Explicit
Private mFilePath As String
Private mFolderPath As String
Private tb As Control
Private Sub Load()
Dim hF As Long, tS As String
hF = FreeFile
Open mFilePath For Binary As hF
tS = Space$(LOF(hF))
Get #hF, , tS
tb.Caption = tS
Close hF
End Sub
Private Sub Save()
Dim hF As Long
hF = FreeFile
Open mFilePath For Append As hF
Print #hF, , tb.Caption
Close hF
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = vbCtrlMask Then
If KeyCode = vbKeyS Then
Save
ElseIf KeyCode = vbKeyL Then
Load
End If
End If
End Sub
Private Sub Form_Load()
mFolderPath = App.Path
mFolderPath = mFolderPath & IIf(Right$(mFolderPath, 1) = "\", "", "\") & "testfolder"
On Error Resume Next
MkDir mFolderPath
SetAttr mFolderPath, vbHidden
On Error GoTo 0
mFilePath = mFolderPath & "\testfile.txt"
Set tb = Me.Controls.Add("VB.Label", "txtContent")
tb.Left = Me.ScaleLeft + 60
tb.Top = Me.ScaleTop + 60
tb.Width = Me.ScaleWidth - 120
tb.Height = Me.ScaleHeight - 120
tb.BorderStyle = 1
tb.Visible = True
tb.Caption = "Проверка записи и чтения файла, находящегося в скрытой папке" & vbCrLf & "Запись в файл - Ctrl-S, чтение - Ctrl-L"
End Sub
Private Sub Form_Resize()
If Not tb Is Nothing Then
tb.Left = Me.ScaleLeft + 60
tb.Top = Me.ScaleTop + 60
tb.Width = Me.ScaleWidth - 120
tb.Height = Me.ScaleHeight - 120
End If
End Sub
Kardinalli писал(а):Ошибку какую-то выдаёт? Тогда текст ошибки в студию. Или что ещё происходит?
Хакер писал(а):Нет необходимости менять атрибут, не выдумывай.
Kardinalli писал(а):Если исключить операции по изменению атрибута, то и выходит указанная ошибка.
iGrok писал(а):Используй For Binary вместо For Output.
Ну и соответственно, работай с файлом через Get/Put, а не Input/Write(Print).
Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 45