Sto selezionando un elenco di file in base a un criterio utilizzando Dir. Memorizzandoli in una serie di stringhe. Quindi iterando attraverso l'array ed elaborando i file.Come gestire i nomi di file con caratteri unicode in VBA usando Dir?
Come posso gestire i nomi di file con caratteri Unicode? Ho provato a fare strconv() ma non ho aiutato.
vfile = Dir(vCurrDir & vCrit, vbNormal) 'vCrit is something like *test*
Poi più tardi i per accedere alle proprietà dei file in questo modo:
vfilename = vCurrDir & "\" & vfile
Set objFSO = CreateObject("Scripting.FileSystemObject")
vDateMod = objFSO.GetFile(vfilename).datelastmodified
l'ultima riga ottengo un errore il file non viene trovato. Lo fa solo per i nomi di file con caratteri Unicode. C'era un altro post su questo qui: Working with Unicode file names in VBA (using Dir, FileSystemObject, etc.) ma non risolveva il problema con Dir.
il mio esempio: VBA (orologio) c: \ my-test-file.pdf Unicode: C: \ My-test-file.pdf
(non si può vedere la differenza qui, ma se si copia incolla in Notepad ++ vedrai che i trattini sono caratteri diversi per i due file, VBA sta convertendo il carattere unicode dash in un trattino locale di Windows)
Oppure l'esempio dalla domanda collegata: 3_Połish.txt (in Unicode) vs 3_Polish.txt (in VBA)
Hai provato ad aggiungere un orologio sul tuo 'nomefilm'? Cosa viene visualizzato? – ZwoRmi
Sì, naturalmente, VBA sta convertendo il nome del file in windows locale: (non puoi vederlo qui ma i trattini sono diversi tra i due nomi di file, se copi incolla su Notepad ++ vedrai cosa intendo) VBA (orologio) c: \ my-test-file.pdf Unicode: c: \ my-test-file.pdf – Atti
Hai provato a utilizzare 'fso.GetFolder (percorso)'? – ZwoRmi