Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

FileSystemObject: problema spazi nome directory.

69 views
Skip to first unread message

oierpa

unread,
Oct 22, 2015, 8:46:39 AM10/22/15
to
Salve a tutti.
So che è un problema già trattato ma le soluzioni trovate non hanno funzionato per me.
In sostanza devo creare un file .bat con dei semplici comandi xcopy (generati da una selezione su una maschera). Il file deve essere creato in una directory:

C:\Program files\mieapp\utility\file.bat

come vedete la directory contiene uno spazioe e non riesco in nessun modo a scrivere lì dentro (non è un problema di autorizzazioni già testato).
Uso i comandi:

Dim dirDest As FileSystemObject
Dim fso As FileSystemObject
Dim oFile As Object
Dim strPath As String

strPath = "C:\Program files\mieapp\utility\file.bat"
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFile = fso.CreateTextFile(strPath)
....
'genero il testo che metto nella variabile "testo"

oFile.WriteLine testo
oFile.Close
Set fso = Nothing
Set oFile = Nothing


Ho provato a scrivere strPath come segue (oltre che come scritto sopra):
strPath = """" & "C:\Program files\mieapp\utility\file.bat" & """"
strPath = "'C:\Program files\mieapp\utility\file.bat'"
strPath = chr(34) & "C:\Program files\mieapp\utility\file.bat" & chr(34)
ho anche provato a crea strPath come somma di più stringhe, separando il nome del file ma il risultato non cambia.

Mi viene restituito l'erroe di runtime 76.
Facendo dei test su un percorso che non contiene spazi il problema non sussiste.
La finestra delle variabili locali come valore di strPath mi restituisce quello corretto, ossia: C:\Program files\mieapp\utility\file.bat e con il testo che voglio nel file ...

Grazie in anticipo.

Bruno Campanini

unread,
Oct 22, 2015, 8:04:33 PM10/22/15
to
oierpa expressed precisely :
Prova così:
strPath = "C:\" & %ProgramFiles% & "\mieapp\utility\file.bat"

Bruno

oierpa

unread,
Oct 24, 2015, 4:45:33 AM10/24/15
to
Ciao Bruno.
Grazie mille per la risposta.
Ho appena provato (ieri ero fuori sede, oggi ho subito voluto provare), ma restituisce lo stesso errore.
In particolare, se non metto le virgolette VBA mi dice subito "carattere non valido", se invece lo metto fra virgolette alla variabile viene assegnato il valore scritto, ossia %ProgramFiles% invece che andare a cercarsi la variabile del SO.
Non so più dove sbattere la testa, speravo davvero che questo tentativo andasse a buon fine perché è l'unico che non avevo provato di quelli proposti da Internet.
Grazie comunque

Bruno Campanini

unread,
Oct 24, 2015, 7:55:59 AM10/24/15
to
oierpa was thinking very hard :
Windows 10 Pro
==============

1 - Ho creato in C:\Program Files la directory "Uti lity"
2 - DxClick su "Uti lity" ==> Properties ==> Security
assegna a tutti il Permission "Full Control"

Dopodiché funziona tutto

Bruno

PS
Che Windows stai usando?

oierpa

unread,
Oct 24, 2015, 8:20:48 AM10/24/15
to
Windows 7 64 bit, con office/access 2013.
Provo fra poco e ti dico.
Grazie

oierpa

unread,
Oct 26, 2015, 3:32:36 AM10/26/15
to
Provato:
errore di runtime 76, impossibile trovare il percorso.
Mi sembra che nel caso di difficoltà di acesso l'errore sia diverso.
Grazie comunque

Bruno Campanini

unread,
Oct 26, 2015, 4:52:45 AM10/26/15
to
oierpa was thinking very hard :
Non so che dirti; alle condizioni che ti ho indicato
da me funziona regolarmene.
Hai ptovato ad assegnare gli stessi Permission
"Full Control" a tutte le directory interessate?

Bruno

oierpa

unread,
Oct 26, 2015, 5:58:45 AM10/26/15
to
Ciao Bruno.
Si ho provato ma contina a darmi l'errore di runtime 76.
Ho poensato di creare una variabile di windows dove scrivo il percorso, ma non so come richaimarla in VBA (visto che %nomevaraibile% non gli piace).

GiovanniDettoSola

unread,
Oct 27, 2015, 5:56:37 AM10/27/15
to
On Mon, 26 Oct 2015 02:58:43 -0700 (PDT), oierpa <oie...@gmail.com>
wrote:
Dim dirDest As FileSystemObject
Dim fso As FileSystemObject
Dim oFile As Object
Dim strPath As String

strPath = "C:\Program files\mieapp\utility\file.bat"
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFile = fso.CreateTextFile(strPath)
oFile.WriteLine "testo"
oFile.Close
Set fso = Nothing
Set oFile = Nothing

il tuo codice sotto win7 32 bit e office 2010 funziona perfettamente
se metto al posto di mieapp mieapp1 ottengo l'errore tu dici.

sei sicuro di scrivere bene il percorso?

prova a spostare il tuo test sotto la directory users.

Message has been deleted

oierpa

unread,
Oct 28, 2015, 5:55:54 PM10/28/15
to
Il giorno martedì 27 ottobre 2015 10:56:37 UTC+1, GiovanniDettoSola ha scritto:
> On Mon, 26 Oct 2015 02:58:43 -0700 (PDT), oierpa
Ciao Giovanni.
Scusa il ritardo nella risposta, nel frattempo in azienda siamo passati da Samba a windows 2012 sul server, non senza problemi.
Io uso win 7 64 e il problema persiste.
Domani provo su una macchina diversa e vedo se ho lo stesso problema o meno.
Grazie mille per l'interessamento.
0 new messages