Как Вы делаете файл записываемым в VB?

Я действительно решил, я просто использовал: pd.read_csv (BytesIO (file_data.data))

5
задан Laurent 15 April 2009 в 07:43
поделиться

3 ответа

Существует множество причин, по которым файл может быть недоступен для записи, например:

  • Он защищен от записи
  • Он находится на носителе только для чтения (например, на компакт-диске)
  • У учетной записи пользователя, используемой для запуска кода, нет доступа для записи в файл
  • Файл находится в общей папке, где запись запрещена

Вы можете проверить некоторые из них, но единственный способ проверить это - попытаться открыть файл для записи.

Вы можете использовать GetAttr и SetAttr выполняет функции поиска и изменения флага только для чтения.

Некоторые причины невозможности записи файла вообще не могут быть исправлены (например, файл на CD-ROM) или не могут быть исправлены из вашей программы , Если учетная запись пользователя не имеет разрешения на запись в файл, она '

3
ответ дан 14 December 2019 в 19:25
поделиться
'Getting and Setting File Attributes

Declare Function SetFileAttributes Lib "kernel32" _
 Alias "SetFileAttributesA" (ByVal lpFileName As _
 String, ByVal dwFileAttributes As Long) As Long
Declare Function GetFileAttributes Lib "kernel32" _
 Alias "GetFileAttributesA" (ByVal lpFileName As _
 String) As Long

Public Function GetAttributes(Filename As String, _
 Archive As Boolean, Hidden As Boolean, _
 ReadOnly As Boolean, System As Boolean)

    'Dimension and setup some variables.
    Dim Data As Long
    Archive = False: Hidden = False: ReadOnly = False

    'Get Data and check for success.
    Data = GetFileAttributes(Filename)
    If Data = 0 Then GetAttributes = 0 Else GetAttributes = 1

    'Work out what it is.
    If Data = 128 Then Exit Function
    If Data - 32 >= 0 Then Archive = True: Data = Data - 32
    If Data - 4 >= 0 Then System = True: Data = Data - 4
    If Data - 2 >= 0 Then Hidden = True: Data = Data - 2
    If Data - 1 >= 0 Then ReadOnly = True: Data = Data - 1

End Function

Public Function SetAttributes(Filename As String, _
Archive As Boolean, Hidden As Boolean, _
ReadOnly As Boolean, System As Boolean)

    'Dimension a Variable.
    Dim Data As Long

    'Work out what Data should be.
    Data = 0
    If Archive = True Then Data = Data + 32
    If Hidden = True Then Data = Data + 2
    If ReadOnly = True Then Data = Data + 1
    If System = True Then Data = Data + 4
    If Data = 0 Then Data = 128

    'Set the attributes and check for success.
    SetAttributes = SetFileAttributes(Filename, Data)

End Function
-1
ответ дан 14 December 2019 в 19:25
поделиться

Использование GetAttr и SetAttr

Dim attributes As VbFileAttribute

attributes = GetAttr("C:\foo.txt")
If (attributes And vbReadOnly) Then
  attributes = attributes - vbReadOnly
  SetAttr "C:\foo.txt", attributes
End If

Использование FileSystemObject (требуется ссылка проекта на среду выполнения сценариев Microsoft)

Dim fso As New FileSystemObject
Dim fil As File

Set fil = fso.GetFile("C:\foo.txt")
If (fil.attributes And ReadOnly) Then
  fil.attributes = fil.attributes - ReadOnly
End If
3
ответ дан 14 December 2019 в 19:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: