Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.lang.visual-basic > #18529 > unrolled thread

funzione Dir

Started byGreg <greg@alicie.com>
First post2015-10-07 20:05 +0200
Last post2015-10-08 13:05 +0200
Articles 13 — 5 participants

Back to article view | Back to it.comp.lang.visual-basic


Contents

  funzione Dir Greg <greg@alicie.com> - 2015-10-07 20:05 +0200
    Re: funzione Dir "Freccia (VegetaSSj)" <NIENTESPAMfreccia_vegetassj@hotmail.invalid> - 2015-10-07 22:14 +0200
    Re: funzione Dir Luca D <antaniserse@yahoo.it> - 2015-10-07 13:21 -0700
    Re: funzione Dir "salclem2" <salclem2@yahoo.it> - 2015-10-07 23:27 +0200
    Re: funzione Dir SB <stNOOObenevSPAM@tin.it> - 2015-10-08 10:56 +0200
      Re: funzione Dir Greg <greg@alicie.com> - 2015-10-08 21:29 +0200
        Re: funzione Dir "salclem2" <salclem2@yahoo.it> - 2015-10-08 23:23 +0200
          Re: funzione Dir "salclem2" <salclem2@yahoo.it> - 2015-10-08 23:26 +0200
            Re: funzione Dir Greg <greg@alicie.com> - 2015-10-08 23:48 +0200
      Re: funzione Dir Greg <greg@alicie.com> - 2015-10-09 16:19 +0200
        Re: funzione Dir SB <stNOOObenevSPAM@tin.it> - 2015-10-09 16:38 +0200
          Re: funzione Dir Greg <greg@alicie.com> - 2015-10-11 00:10 +0200
    Re: funzione Dir Greg <greg@alicie.com> - 2015-10-08 13:05 +0200

#18529 — funzione Dir

FromGreg <greg@alicie.com>
Date2015-10-07 20:05 +0200
Subjectfunzione Dir
Message-ID<mv3mui$grg$1@solani.org>
Mi sono accorto oggi che la riga:
x= Dir("G:\miofile.txt")
mi restituisce Vuoto anzichè "" quando il drive non è presente. A cosa potrebbe essere dovuto? 
Grazie per ogni info

-- 
Greg

[toc] | [next] | [standalone]


#18530

From"Freccia (VegetaSSj)" <NIENTESPAMfreccia_vegetassj@hotmail.invalid>
Date2015-10-07 22:14 +0200
Message-ID<b9si5eq4dkoe.r0v6f2f78g7n$.dlg@40tude.net>
In reply to#18529
Su "it.comp.lang.visual-basic",  ==Greg=> ha scritto: 

> Mi sono accorto oggi che la riga: x= Dir("G:\miofile.txt") mi
> restituisce Vuoto anzichè "" quando il drive non è presente. A cosa
> potrebbe essere dovuto? Grazie per ogni info

Provato con Dir$()?

-- 
Freccia@Bulldozer63 :D

[toc] | [prev] | [next] | [standalone]


#18531

FromLuca D <antaniserse@yahoo.it>
Date2015-10-07 13:21 -0700
Message-ID<1ab2b681-a332-43bd-b366-74996a8c0cab@googlegroups.com>
In reply to#18529
On Wednesday, October 7, 2015 at 8:06:12 PM UTC+2, Greg wrote:
> Mi sono accorto oggi che la riga:
> x= Dir("G:\miofile.txt")
> mi restituisce Vuoto anzichè "" quando il drive non è presente. A cosa potrebbe > essere dovuto? 

Al fatto che Dir restituisce un Variant, per cui "vuoto" o "" dipende da come hai dichiarato la variabile di ritorno.

Come già detto nell'altra risposta, Dir$ restituiesce esplicitamente String, e quindi non hai ambiguità

[toc] | [prev] | [next] | [standalone]


#18532

From"salclem2" <salclem2@yahoo.it>
Date2015-10-07 23:27 +0200
Message-ID<mv42oc$arr$1@speranza.aioe.org>
In reply to#18529
"Greg" <greg@alicie.com> nel suo ultimo post si è così espresso:
> Mi sono accorto oggi che la riga:
> x= Dir("G:\miofile.txt")
> mi restituisce Vuoto anzichè "" quando il drive non è presente. A cosa potrebbe essere dovuto? Grazie per ogni info
>
O esiste o non esiste il drive, dir restituisce sempre una stringa vuota se il file non esiste,
restituisce qualcosa solo se il file esiste.
Help
=================================================================
Dir Function

Returns a String representing the name of a file, directory, or folder that matches a specified pattern or file 
attribute, or the volume label of a drive.

Syntax
Dir[(pathname[, attributes])]

The Dir function syntax has these parts:

Part Description
pathname Optional.String expression that specifies a file name - may include directory or folder, and drive. A 
zero-length string ("") is returned if pathname is not found.
====================================================================





-- 
http://freewarewiki.it
http://freewareonline.org
http://netuser.altervista.org

[toc] | [prev] | [next] | [standalone]


#18533

FromSB <stNOOObenevSPAM@tin.it>
Date2015-10-08 10:56 +0200
Message-ID<4cbc1bla3674309egh2l25i74tbvfiiqm8@4ax.com>
In reply to#18529
Il giorno Wed, 07 Oct 2015 20:05:59 +0200, Greg <greg@alicie.com> ha scritto:

>Mi sono accorto oggi che la riga:
>x= Dir("G:\miofile.txt")
>mi restituisce Vuoto anzichè "" quando il drive non è presente. A cosa potrebbe essere dovuto? 

Ti hanno già risposto sul tipo di dato che restituisce Dir, io invece ti
consiglio di non usarlo e per verificare l'esistenza di un file uso l'api
GetFileAttributes, tra l'altro puoi sapere se è una direcory e altre info

Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA"
(ByVal lpFileName As String) As Long

Const INVALID_HANDLE_VALUE = -1
Const FILE_ATTRIBUTE_ARCHIVE = &H20
Const FILE_ATTRIBUTE_DIRECTORY = &H10
Const FILE_ATTRIBUTE_HIDDEN = &H2
Const FILE_ATTRIBUTE_NORMAL = &H80
Const FILE_ATTRIBUTE_READONLY = &H1
Const FILE_ATTRIBUTE_SYSTEM = &H4
Const FILE_ATTRIBUTE_TEMPORARY = &H100

x& = GetFileAttributes ("G:\miofile.txt")

If x& > 0 Then MsgBox ("ESISTE")



-- 
ciao
  Stefano

[toc] | [prev] | [next] | [standalone]


#18535

FromGreg <greg@alicie.com>
Date2015-10-08 21:29 +0200
Message-ID<mv6g7p$rsn$1@solani.org>
In reply to#18533
Il 08/10/15 10.56.17 SB ha scritto:
> Il giorno Wed, 07 Oct 2015 20:05:59 +0200, Greg <greg@alicie.com> ha scritto:

>> Mi sono accorto oggi che la riga:
>> x= Dir("G:\miofile.txt")
>> mi restituisce Vuoto anzichè "" quando il drive non è presente. A cosa potrebbe essere dovuto? 

> Ti hanno già risposto sul tipo di dato che restituisce Dir, io invece ti
> consiglio di non usarlo e per verificare l'esistenza di un file uso l'api
> GetFileAttributes, tra l'altro puoi sapere se è una direcory e altre info

> Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA"
> (ByVal lpFileName As String) As Long

> Const INVALID_HANDLE_VALUE = -1
> Const FILE_ATTRIBUTE_ARCHIVE = &H20
> Const FILE_ATTRIBUTE_DIRECTORY = &H10
> Const FILE_ATTRIBUTE_HIDDEN = &H2
> Const FILE_ATTRIBUTE_NORMAL = &H80
> Const FILE_ATTRIBUTE_READONLY = &H1
> Const FILE_ATTRIBUTE_SYSTEM = &H4
> Const FILE_ATTRIBUTE_TEMPORARY = &H100

> x& = GetFileAttributes ("G:\miofile.txt")

> If x& > 0 Then MsgBox ("ESISTE")

Grazie, alla fine ho usato la funzione Api e va tutto bene, ma vorrei capire perchè non funziona 
la  Dir$ e la Dir
Ho provato a riscriverla cosi:

Dim aa As String
aa = Dir$("c:\prova.txt")
e restituisce "prova.txt"

mentre:
aa = Dir$("h:\prova.txt")
da errore 52 numero o nome di file non valido

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#18536

From"salclem2" <salclem2@yahoo.it>
Date2015-10-08 23:23 +0200
Message-ID<mv6ms4$ce4$1@speranza.aioe.org>
In reply to#18535
"Greg" <greg@alicie.com> nel suo ultimo post si è così espresso:

>
>> x& = GetFileAttributes ("G:\miofile.txt")
>
>> If x& > 0 Then MsgBox ("ESISTE")
>
> Grazie, alla fine ho usato la funzione Api e va tutto bene, ma vorrei capire perchè non funziona la  Dir$ e la Dir
> Ho provato a riscriverla cosi:
>
> Dim aa As String
> aa = Dir$("c:\prova.txt")
> e restituisce "prova.txt"
>
> mentre:
> aa = Dir$("h:\prova.txt")
> da errore 52 numero o nome di file non valido
>
> -- 
> Greg
>
Il motivo è semplice, perché esiste il drive H: ma non esiste il file, però se entrambi non esistono restituisce una 
stringa vuota.





-- 
http://freewarewiki.it
http://freewareonline.org
http://netuser.altervista.org

[toc] | [prev] | [next] | [standalone]


#18537

From"salclem2" <salclem2@yahoo.it>
Date2015-10-08 23:26 +0200
Message-ID<mv6n26$cqu$1@speranza.aioe.org>
In reply to#18536
"salclem2" <salclem2@yahoo.it> nel suo ultimo post si è così espresso:
> "Greg" <greg@alicie.com> nel suo ultimo post si è così espresso:
>
>>
>>> x& = GetFileAttributes ("G:\miofile.txt")
>>
>>> If x& > 0 Then MsgBox ("ESISTE")
>>
>> Grazie, alla fine ho usato la funzione Api e va tutto bene, ma vorrei capire perchè non funziona la  Dir$ e la Dir
>> Ho provato a riscriverla cosi:
>>
>> Dim aa As String
>> aa = Dir$("c:\prova.txt")
>> e restituisce "prova.txt"
>>
>> mentre:
>> aa = Dir$("h:\prova.txt")
>> da errore 52 numero o nome di file non valido
>>
>> -- 
>> Greg
>>
> Il motivo è semplice, perché esiste il drive H: ma non esiste il file, però se entrambi non esistono restituisce una 
> stringa vuota.
Anzi, non proprio non esiste, non è accessibile il drive (es. il cdrom), altrimenti restituisce una stringa vuota.



-- 
http://freewarewiki.it
http://freewareonline.org
http://netuser.altervista.org

[toc] | [prev] | [next] | [standalone]


#18538

FromGreg <greg@alicie.com>
Date2015-10-08 23:48 +0200
Message-ID<mv6oc3$pl7$1@solani.org>
In reply to#18537
Il 08/10/15 23.26.31 salclem2 ha scritto:
> "salclem2" <salclem2@yahoo.it> nel suo ultimo post si è così espresso:
>> "Greg" <greg@alicie.com> nel suo ultimo post si è così espresso:
>>
>>>
>>>> x& = GetFileAttributes ("G:\miofile.txt")
>>>
>>>> If x& > 0 Then MsgBox ("ESISTE")
>>>
>>> Grazie, alla fine ho usato la funzione Api e va tutto bene, ma vorrei capire perchè non 
>>> funziona la  Dir$ e la Dir
>>> Ho provato a riscriverla cosi:
>>>
>>> Dim aa As String
>>> aa = Dir$("c:\prova.txt")
>>> e restituisce "prova.txt"
>>>
>>> mentre:
>>> aa = Dir$("h:\prova.txt")
>>> da errore 52 numero o nome di file non valido
>>>
>>> -- Greg
>>>
>> Il motivo è semplice, perché esiste il drive H: ma non esiste il file, però se entrambi non 
>> esistono restituisce una stringa vuota.
> Anzi, non proprio non esiste, non è accessibile il drive (es. il cdrom), altrimenti restituisce 
> una stringa vuota.

Ma hai ragione, che sbadato. A furia di non usare più il cd-rom mi ero dimenticato che esistesse.
Invece il drive H: è li, vuoto ma è li.
Quindi la Dir$ può dare 3 risultati, non due! Grazie davvero

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#18539

FromGreg <greg@alicie.com>
Date2015-10-09 16:19 +0200
Message-ID<mv8idn$eb5$1@solani.org>
In reply to#18533
Il 08/10/15 10:56:17 SB ha scritto:
> Il giorno Wed, 07 Oct 2015 20:05:59 +0200, Greg <greg@alicie.com> ha scritto:

>> Mi sono accorto oggi che la riga:
>> x= Dir("G:\miofile.txt")
>> mi restituisce Vuoto anzichè "" quando il drive non è presente. A cosa 
>> potrebbe essere dovuto? 

> Ti hanno già risposto sul tipo di dato che restituisce Dir, io invece ti
> consiglio di non usarlo e per verificare l'esistenza di un file uso l'api
> GetFileAttributes, tra l'altro puoi sapere se è una direcory e altre info

> Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA"
> (ByVal lpFileName As String) As Long

> Const INVALID_HANDLE_VALUE = -1
> Const FILE_ATTRIBUTE_ARCHIVE = &H20
> Const FILE_ATTRIBUTE_DIRECTORY = &H10
> Const FILE_ATTRIBUTE_HIDDEN = &H2
> Const FILE_ATTRIBUTE_NORMAL = &H80
> Const FILE_ATTRIBUTE_READONLY = &H1
> Const FILE_ATTRIBUTE_SYSTEM = &H4
> Const FILE_ATTRIBUTE_TEMPORARY = &H100

> x& = GetFileAttributes ("G:\miofile.txt")

> If x& > 0 Then MsgBox ("ESISTE")

Ciao SB,
sto provando l'api che mi hai suggerito su due diversi pc, xp e seven 
tutti a 32 bit.
Per testare l'esitenza di un file va benissimo, sempre, ma se voglio 
testare anche gli attibuti del file (ed evitare cosi anche GetAttr) mi 
da risultati diversi:
Dim k as Long
k = GetFileAttributes ("G:\miofile.txt")
su XP mi restituisce 8224 e su Seven 32. Come mai?

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#18540

FromSB <stNOOObenevSPAM@tin.it>
Date2015-10-09 16:38 +0200
Message-ID<vujf1b1on3cvs148tki6k8681cjnmjfn3e@4ax.com>
In reply to#18539
Il giorno Fri, 09 Oct 2015 16:19:34 +0200, Greg <greg@alicie.com> ha scritto:


>Ciao SB,
>sto provando l'api che mi hai suggerito su due diversi pc, xp e seven 
>tutti a 32 bit.
>Per testare l'esitenza di un file va benissimo, sempre, ma se voglio 
>testare anche gli attibuti del file (ed evitare cosi anche GetAttr) mi 
>da risultati diversi:
>Dim k as Long
>k = GetFileAttributes ("G:\miofile.txt")
>su XP mi restituisce 8224 e su Seven 32. Come mai?

Dunque 32 in esadecimale è 20H o 0x20 a seconda del dialetto preferito, mentre
8224 è 2020H o 0x2020

Guardando MSDN
https://msdn.microsoft.com/en-us/library/windows/desktop/gg258117%28v=vs.85%29.aspx

il 20H è il flag archive in tutti due i casi
mentre il 0x2000 significa FILE_ATTRIBUTE_NOT_CONTENT_INDEXED, cioè
evidentemente xp non ha indicizzato il file mentre W7 si, oppure non hai attivo
quel servizio su 7.

In ogni caso è tutto ok.


-- 
ciao
  Stefano

[toc] | [prev] | [next] | [standalone]


#18541

FromGreg <greg@alicie.com>
Date2015-10-11 00:10 +0200
Message-ID<mvc2bm$a01$1@solani.org>
In reply to#18540
Il 09/10/15 16.38.46 SB ha scritto:
> Il giorno Fri, 09 Oct 2015 16:19:34 +0200, Greg <greg@alicie.com> ha scritto:


>> Ciao SB,
>> sto provando l'api che mi hai suggerito su due diversi pc, xp e seven 
>> tutti a 32 bit.
>> Per testare l'esitenza di un file va benissimo, sempre, ma se voglio 
>> testare anche gli attibuti del file (ed evitare cosi anche GetAttr) mi 
>> da risultati diversi:
>> Dim k as Long
>> k = GetFileAttributes ("G:\miofile.txt")
>> su XP mi restituisce 8224 e su Seven 32. Come mai?

> Dunque 32 in esadecimale è 20H o 0x20 a seconda del dialetto preferito, mentre
> 8224 è 2020H o 0x2020

> Guardando MSDN
> https://msdn.microsoft.com/en-us/library/windows/desktop/gg258117%28v=vs.85%29.aspx

> il 20H è il flag archive in tutti due i casi
> mentre il 0x2000 significa FILE_ATTRIBUTE_NOT_CONTENT_INDEXED, cioè
> evidentemente xp non ha indicizzato il file mentre W7 si, oppure non hai attivo
> quel servizio su 7.

> In ogni caso è tutto ok.

Grazie per la delucidazione :)

-- 
Greg

[toc] | [prev] | [next] | [standalone]


#18534

FromGreg <greg@alicie.com>
Date2015-10-08 13:05 +0200
Message-ID<mv5imn$cu2$1@solani.org>
In reply to#18529
Il 07/10/15 20:05:59 Greg ha scritto:
> Mi sono accorto oggi che la riga:
> x= Dir("G:\miofile.txt")
> mi restituisce Vuoto anzichè "" quando il drive non è presente. A cosa 
> potrebbe essere dovuto? Grazie per ogni info

Grandissimi come sempre, grazie a tutti.

-- 
Greg

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.lang.visual-basic


csiph-web