PDA

View Full Version : [VB6] Come mi muovo da una directory a un'altra?


robnet77
15-07-2003, 08:03
Avrei bisogno di sapere come si può, di volta in volta, cambiare la directory di lavoro attuale.

Ad esempio, se creo un nuovo progetto inserendo questo codice:

Private Sub Command1_Click()
Dim intFile As Byte
intFile = FreeFile()
Open "myfile.txt" For Append As #intFile
Print #intFile, "Una linea del testo"
Close #intFile
End Sub

otterrò la creazione del file myfile.txt nella cartella

C:\Programmi\Microsoft Visual Studio\VB98

Se invece scrivo


Open "C:\myfile.txt" For Append As #intFile

il file verrà creato nella route.

Queste sono le cose che so anch'io :p

Vorrei sapere, per favore, come stabilire una directory di lavoro diversa da quella predefinita (se devo creare 50 file non vorrei scrivere tutte le volte il percorso), e magari, se possibile, come scrivere il file in una cartella che non esiste, creandola invece che generare un errore.

Non so se mi sono spiegato, spero di sì :p

Grazie! :)

robnet77
15-07-2003, 08:08
A proposito, a che serve il tanto usato cancelletto # (che nel linguaggio internazionale significa "number", questo lo so... :pig: ) nella dichiarazione del file di lavoro?

Ho visto che è possibile ometterlo senza conseguenze... come lo gestisce Visual Basic? Forse è solo per il programmatore, per individuare meglio il file visivamente? :confused:

cionci
15-07-2003, 08:15
Originally posted by "robnet77"

il file verrà creato nella route.
Root ;)


Private Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
Private Sub Form_Paint()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@allapi.net
SetCurrentDirectory App.Path
End Sub

robnet77
15-07-2003, 08:37
Originally posted by "cionci"


Root ;)


Private Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
Private Sub Form_Paint()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@allapi.net
SetCurrentDirectory App.Path
End Sub


ehm, chissà perché ho scritto strada in francese invece che radice in inglese... :p

grazie per il codice, ma non ho chiaro come usarlo...

la Api SetCurrentDirectory dovrebbe rendere come dir di lavoro l'argomento che gli si passa, giusto? In questo caso App.Path non è esattamente la dir predefinita? Io ho bisogno di scegliermi da solo la dir, ma ho visto che non posso passare una "C:\Programmi" come argomento...

Help! :(

cionci
15-07-2003, 08:45
Originally posted by "robnet77"

la Api SetCurrentDirectory dovrebbe rendere come dir di lavoro l'argomento che gli si passa, giusto? In questo caso App.Path non è esattamente la dir predefinita? Io ho bisogno di scegliermi da solo la dir, ma ho visto che non posso passare una "C:\Programmi" come argomento...

Gli passi ciò che ti serve... La dir predefinita non è sempre quella del programma...dipende da dove lo lanci...

a2000
15-07-2003, 09:15
Istruzione ChDir

Imposta una diversa directory o cartella predefinita.

Sintassi

ChDir percorso

L'argomento obbligatorio percorso è costituito da un'espressione stringa che identifica quale sarà la nuova directory o cartella predefinita. È possibile specificare l'unità. Se non si indica alcuna unità, ChDir imposterà la directory o cartella predefinita nell'unità corrente.

Osservazioni

L'istruzione ChDir cambia la directory predefinita ma non l'unità predefinita. Se, ad esempio, l'unità predefinita è C, la seguente istruzione imposterà la directory predefinita sull'unità D, ma C resterà l'unità predefinita:

ChDir "D:\TMP"

In Power Macintosh, l'unità predefinita viene sempre impostata sull'unità specificata in percorso. La specifica del percorso completo inizia con il nome del volume e i percorsi relativi iniziano con due punti (:). ChDir risolve qualsiasi alias specificato nel percorso:

ChDir "MacDrive:Tmp" ' In Macintosh.

Si noti che i simboli utilizzati in Microsoft Windows e in Macintosh per eseguire spostamenti di directory relativi sono diversi:

ChDir ".." ' Sposta di una directory verso l'alto in Microsoft Windows.
ChDir "::" ' Sposta di una directory verso l'alto in Macintosh.[/size]


[b]Vedere anche:
CurDir
ChDrive
Dir
MkDir
RmDir

robnet77
15-07-2003, 10:15
Originally posted by "a2000"

Istruzione ChDir[b]

Imposta una diversa directory o cartella predefinita.

Sintassi

ChDir percorso

'omesso



incredibile, sei un grande, è proprio quello che cercavo! :eek:

Grazie!



Grazie anche a cionci!

robnet77
15-07-2003, 10:16
Originally posted by "robnet77"

A proposito, a che serve il tanto usato cancelletto # (che nel linguaggio internazionale significa "number", questo lo so... :pig: ) nella dichiarazione del file di lavoro?

Ho visto che è possibile ometterlo senza conseguenze... come lo gestisce Visual Basic? Forse è solo per il programmatore, per individuare meglio il file visivamente? :confused:

chi sapesse qualcosa... :p

cionci
15-07-2003, 10:22
Originally posted by "robnet77"

Grazie anche a cionci!
Figurati comunque fanno la stessa cosa... Anche all'altra gli puoi passare il percorso che ti pare... Comunque visto che c'è già un comando del genere in VB meglio usare quello...