Avatar billede ksor Mester
07. oktober 2022 - 00:43 Der er 10 kommentarer

Sti / Filname med mellemrum ???

Det er ved at gøre mig vanvittig !!!!!

Jeg har et par filer, som skal kopieres til en sti med mellemrum i mappenavnene:

"\\nas-72-89-FD\2 - Month\TS Outlook\mikkel.soerensens@gmail.com.ost"

Jeg synes jeg har prøvet alt med Chr(34), """ i enderne og midt i - hver gang får jeg Err.Number = 52 !

Hvordan _BEEP_ skal den streng skrives ?
Avatar billede arne_v Ekspert
07. oktober 2022 - 00:54 #1
Hvordan ser din kommando ud?
Avatar billede ksor Mester
07. oktober 2022 - 07:15 #2
Jeg laver først variablene fraFil og tilFil:

If (left(mailAdresse,4)="xxxx") Then
    fraFil = "C:\Users\xxxxs\AppData\Local\Microsoft\Outlook\xxxx.soerensens@gmail.com(2).ost"
    tilFil = "\\nas-72-89-FD\2 - Month\KS Outlook\xxxx.soerensens@gmail.com(2).ost"
Else
    fraFil = "C:\Users\yyyy\AppData\Local\Microsoft\Outlook\yyyy.soerensens@gmail.com.ost"
    tilFil = "\\nas-72-89-FD\2 - Month\TS Outlook\yyyy.soerensens@gmail.com.ost"
End If

så kalder jeg kopieringen med denne:

kopiFejl = KopierDatafil(fraFil,tilFil)

Function KopierDatafil(F, T )
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    On Error Resume Next
    FSO.CopyFile F, T
'WScript.Sleep 10000
    If (Err.Number <> 0) then
        KopierDatafil=False
    else
        KopierDatafil=true
    end if
End Function

og her er Err.Number=52 uanset hvad jeg gør !

Det er det mest sindsyge system, MS har lavet her - egentlig skulle jeg også bruge danske tegn, men så bliver det da HELT håbløst !
Avatar billede martens Guru
07. oktober 2022 - 09:21 #3
Hvorfor vil du kopiere *.ost-filer (offline storage tables) ?
Der er jo tale om data fra en gmail-konto IMAP, så det er jo en fil, der blot er en cache.
Alternativt skal du gemme din mail ved at eksportere data til en PST- fil
Avatar billede ksor Mester
07. oktober 2022 - 11:49 #4
WHAT ... jam, ja, men jeg tror da ikke der er en PST-fil, når Outlook er sat op til IMAP.

PST er vel fra POP3 opsætningen ... eller hva' !

Men jeg må da indrømme, at det der POP3 / IMAP er totalt sort land for mig - efter seneste nedbrud og efterfølgende genetablering blev Outlook - til min store fortrydelse - installeret som IMAP ... og det skal jeg ikke til at lave om på nu ... igen, igen, igen ...

Men mit spørgsmål gik egentlig på strenge med spaces (og evt. danske tegn !) !

Det kan simpelthen ikke passe, at det er lavet så knoldet, som det her ser ud til  at være - f.eks. bliver et å i scriptet til 'Å og et YEN-tegn' når jeg DEBUGGER scriptet i VS2022 !
Når jeg så vil ind i kildeteksten for at rette det ... ja, så står det rigtigt ... altså kun et lille å ... det er da til at blive vanvittig af !
Så jeg har RETTET min mappe fra Måneds til Month - så er det problem da væk, men tilbage er det med spaces i og lange navne på mapperne !
Avatar billede bvirk Guru
07. oktober 2022 - 13:02 #5
blot et skud - prøv at pakke til filnavnet ind i 'indholds gåseøjne'
"""fil"""  (3 gåseøjne for og bag)
Avatar billede ksor Mester
07. oktober 2022 - 13:13 #6
>> bvirk
??? prøv at læse min første post !
Avatar billede bvirk Guru
07. oktober 2022 - 13:38 #7
Ups - det overså jeg.
Bruger din nas filsystem backslash som path seperatortegn.
Avatar billede arne_v Ekspert
07. oktober 2022 - 14:10 #8
Som argumenter til fso CopyFile mener jeg slet ikke at du skal have nogle ekstra quotes!

f = "z.z"
t = "navn med masser af mellemrum.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile f, t
Set fso = Nothing

virker fint.
Avatar billede ksor Mester
07. oktober 2022 - 14:55 #9
>> bvirk
Jeg kan bruge den string ved en manuel kopiering, så det viser vel, at stringen er OK selv med backslash

>> arne_v
Det bliver sgu' mere og mere mystisk ... så er der vel kun () tilbage, men når stringen virker ved manuel kopiering, så er det vel heller ikke fejlen !

Jeg tror jeg vil lave et mindre eksempel og prøve at 'bygge' mere og mere på - så må det sgu' da lykkedes, skulle man synes !
Avatar billede ksor Mester
07. oktober 2022 - 15:40 #10
Dette lille eksempel er godt at få forstand af !

Det er nemt af prøve alle kombinationer !

Det viser sig, at det er mit NAS-drive, hvor den IKKE vil acceptere navnet:
\\nas-72-89-FD

Option Explicit
Dim fraFil, tilFil
fraFil = "C:\Users\kelds\Test Fil æøå(ÆØÅ).txt"
tilFil = "X:\Test Fil2.txt"
msgBox("Err.Number = " & KopierDatafil(fraFil,tilFil))

Function KopierDatafil(F, T )
    Dim FSO
    Set FSO = CreateObject("Scripting.FileSystemObject")
    On Error Resume Next
    FSO.CopyFile F, T
    KopierDatafil=Err.number
End Function

Tak for jeres ideer og tid !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester