Newsgroup: it.comp.appl.access
Titolo: verificare se un file è aperto

Uso la seguente funzione per verificare se un qualsiasi file è aperto:
'================================================
Function FileIsOpen(sFileSpec As String) As Boolean
On Error GoTo FileIsOpen_error
'Verifica se un file è aperto e restituisce Vero o Falso.
'sFileSpec è il path completo del file
    On Error Resume Next
    If IsNothing(sFileSpec) Or sFileSpec = vbNullString Then
        FileIsOpen = False
        Exit Function
    End If
    Dim nFile As Integer
    nFile = FreeFile(0)
    Open sFileSpec For Binary Lock Read As #nFile
    'Open sFileSpec For Output As #nFile
    FileIsOpen = Err <> 0
    Close #nFile
FileIsOpen_exit:
Exit Function
FileIsOpen_error:
MsgBox Err.Number & " - " & Err.Description
Resume FileIsOpen_exit
End Function
'================================================
Il problema è che NON funziona con file immagine tipo jpg,
bmp......ecc
Qualcuno mi può aiutare?
Grazie

 Qualcuno mi pu� aiutare?
Curiosita' come hai fatto a verificare che, quei file, fossero 
effettivamanet aperti?
-- 
ac (x=y-1)

    If IsNothing(sFileSpec) Or sFileSpec = vbNullString Then
Posta anche la funzione "IsNothing".
-- 
Ciao
Geppo 

 ha scritto nel messaggio 
news:d1545e34-f210-40a3...@l7g2000vbz.googlegroups.com...
Uso la seguente funzione per verificare se un qualsiasi file � aperto:
'cut
Questa funzione a me va bene per qualunque file:
Function FileIsOpen(sFileName As String) As Boolean
    Dim iFileNum As Integer, lErrNum As Long
    On Error Resume Next
    iFileNum = FreeFile()
    Open sFileName For Input Lock Read As #iFileNum
    Close iFileNum
    lErrNum = Err.Number
    On Error GoTo 0
    Select Case lErrNum
    Case 0
        FileIsOpen = False
    Case 70
        FileIsOpen = True
    Case 53
        FileIsOpen = False
    Case Else
        FileIsOpen = True
        'Debug.Print Error(lErrNum)
    End Select
End Function
Restituisce False se il file NON � aperto.
Ciao, Carlo 

 Questa funzione a me va bene per qualunque file:
Hai provato anche con i file ".txt"?
-- 
Ciao
Geppo


La questione puo' non essere questa.
Non vedo per quale motivo un qualsiasi gestore di file grafici o meno li 
debba tenere aperti. ;-{)
Io personalmente, se lo dovessi gestire, il file grafico intendo, lo 
leggo, lo chiudo , lo elaboro in memoria e poi.... eventualmente lo 
riscrivo, in genere anche avvisando in caso di overscrittura.
Insomma se trovo un file immagine aperto e' puro.... fortuna va ;-{)
E questo puo' succedere anche con i files di testo o qualsiasi tipo di file.
Classico problema statefull/stateless
-- 
ac (x=y-1)

"Geppo" <c...@tin.it.invalid> ha scritto nel messaggio 
news:j1jcs6$q24$1...@speranza.aioe.org...

S�, certo e funziona.
Scusa ma perch� me lo chiedi? Tu ci hai provato?
Ciao, Carlo 

 Ciao, Carlo
-- 
Ciao Geppo 

........adesso mi sono accorto che non va neanche i file ".png". Ho provato 
ad aprire il file con vari programmi, ma non va.
-- 
Ciao
Geppo 

 Io personalmente, se lo dovessi gestire.........
...ma tu sei uno in gamba, non tutti sono dei maestri. ;-)
-- 
Ciao
Geppo 

"Geppo" <c...@tin.it.invalid> ha scritto nel messaggio 
news:j1jlmk$fgk$1...@speranza.aioe.org...

A me va che � una meraviglia. Windows 7 64bit. Windows XP sp3.
Potrebbe dipendere dalle autorizzazioni sulla cartella?
Prova con il percorso C:\User\NomeUtente\Pictures\NomeImmagine.png
Ciao, Carlo 

 Ciao, Carlo
grazie
-- 
Ciao
Geppo 

 Geppo
Ecco la funzione:
Public Function IsNothing(ByVal varValueToTest) As Integer
'-----------------------------------------------------------
' Does a "nothing" test based on data type.
'   Null = nothing
'   Empty = nothing
'   Number = 0 is nothing
'   String = "" is nothing
'   Date/Time is never nothing
' Inputs: A value to test for logical "nothing"
' Outputs: True = value passed is a logical "nothing", False = it
ain't
'-----------------------------------------------------------
Dim intSuccess As Integer
    On Error GoTo IsNothing_Err
    IsNothing = True
    Select Case varType(varValueToTest)
        Case 0      ' Empty
            GoTo IsNothing_Exit
        Case 1      ' Null
            GoTo IsNothing_Exit
        Case 2, 3, 4, 5, 6  ' Integer, Long, Single, Double, Currency
            If varValueToTest <> 0 Then IsNothing = False
        Case 7      ' Date / Time
            IsNothing = False
        Case 8      ' String
            If (Len(varValueToTest) <> 0 And varValueToTest <> " " And
varValueToTest <> vbNullString) Then IsNothing = False
    End Select
IsNothing_Exit:
    On Error GoTo 0
    Exit Function
IsNothing_Err:
    IsNothing = True
    Resume IsNothing_Exit
End Function
'==================
Grazie...ho sollevato un vespaio?
Sergio

 ac (x=y-1)
Succede che, con il file .jpg, .bmp ecc..aperto, se voglio spostarlo
da VB semplicemente con ---Name nomevecchio As NomeNuovo---, mi
consente di farlo, ma mi ritrovo il file duplicato anzichè spostato.
Rilevando che il file è aperto blocco la routine.
Nel caso di file .txt succede che il file risulta duplicato, ma in
quello vecchio scompare il testo.........
Grazie, spero di essermi spiegato
Sergio

 ha scritto nel messaggionews:j1lijg$hcl$1...@tdi.cu.mi.it...

Niente, nel mio caso non funziona nemmeno con C:\User\NomeUtente
\Pictures\ con file .jpg e nemmeno con .txt.....
Ho postato in precedenza rispondendo a Geppo la function IsNothing
Ciao a tutti
Sergio