Avatar billede mega-hawk Nybegynder
19. september 2010 - 12:17 Der er 20 kommentarer og
1 løsning

filecopy file not found

Hvad er der galt her?

Dim copy_file As String
copy_file = App.path & "..\backup\test_file.txt"
FileCopy "copy_file", "Dir1.path"
File1.Refresh

Har som i måske har gættet en drive listbox, dirlist box og file listbox.

Så vil jeg gennem min dirlist vælge min destination og så trykke på en knap og så bliver filen test_file.txt kopieret fra den angivende sti ind i den mappe jeg har valgt.

Altså jeg har c:\vb\menu hvor den så skal gå under c:\vb\backup og kopiere min test_file.txt ind i den mappe jeg vælger fra dir1.path uanset om det er c:\windows eller f:\noget_helt_andet

men den bliver ved med at sige file not found selvom min test_file ligger i det bibliotek.
Avatar billede anlu Nybegynder
19. september 2010 - 13:07 #1
Til en start kan du i hvert fald fjerne anførselstegnene omkring copy_file og Dir1.path i linje 3...
Avatar billede mega-hawk Nybegynder
19. september 2010 - 13:17 #2
Har lige startet et helt nyt program lige for at tage det hele fra bunden.
Har følgende:

1x drivelistbox
1x dirlistbox
1x filelistbox
1x commandButton

Og her er alt koden (skulle være hurtig at lave efter)

Private Sub Command1_Click()
FileCopy File1.Name, "C:\test\"
End Sub

Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub

hvis jeg fjerner " fra C:\test\ siger den altså

Compile error:

Expected line number or label or statement or end of statement
Så lige om c:\test har jeg åbenbart brug for den, men det virker stadig ikke...
Andre forslag?
Avatar billede mega-hawk Nybegynder
19. september 2010 - 13:24 #3
sjovt nok for hvis jeg tilføjer denne linje lige før filecopy

MsgBox File1.FileName

Så fortæller den mig fint nok hvilken fil jeg har valgt derfor forstår jeg ikke hvorfor den ikke gider kopiere den.
Avatar billede anlu Nybegynder
19. september 2010 - 13:37 #4
Klart du skal have anførselstegn om "C:\test", da det er streng du angiver eksplicit - i dit forrige eksempel havde du puttet anførselstegn om variabelnavne.

Er det stadig "file not found"-fejl du får?
Avatar billede mega-hawk Nybegynder
19. september 2010 - 13:53 #5
ok det her er mærkelig ved ikke om du bliver klogere af det.

Men som sagt har jeg lige lavet et helt nyt program som kun indeholder det nødvendige.

Hvis jeg så går ind i mit dir og vælger et andet bib og så i min file list tager en fil fortæller den mig fint hvilken fil jeg har fat i men siger:

Run-time error 53
file not found

hvis jeg så vælger at BLIVE i det bib den starter op i når jeg starter mit program så siger den

Run time error 76
path not found

Det giver da slet ingen mening
Avatar billede anlu Nybegynder
19. september 2010 - 13:56 #6
Jeg tror filecopy vil have et target-filnavn og ikke kun en folder.
Avatar billede mega-hawk Nybegynder
19. september 2010 - 13:57 #7
har lige tilføjet:

Private Sub Form_Load()
Dir1.Path = "C:\"
End Sub


Nu siger den ikke noget med path mere lige meget hvad jeg vælger nu holder den sig til file not found.
Men hvordan kan den sige file not found for når jeg sætter en msgbox ind lige før filecopy så fortæller den jo fint hvilken fil jeg har fat i
Avatar billede mega-hawk Nybegynder
19. september 2010 - 13:58 #8
lige ændret til
FileCopy File1.FileName, "C:\test\t.txt"

Stadig file not found
Avatar billede anlu Nybegynder
19. september 2010 - 13:59 #9
Har du prøvet at at hardcode et filnavn bare for at se om du kan få filecopy alene?
Avatar billede mega-hawk Nybegynder
19. september 2010 - 14:04 #10
undskyld et måske dumt spørgsmål, men hvad vil det sige at hardcode et filnavn?
Avatar billede mega-hawk Nybegynder
19. september 2010 - 14:08 #11
hm ok den her linje virker:
FileCopy "C:\test.txt", "C:\test\test.txt"
men hvis jeg ændrer den til
FileCopy "C:\test.txt", "C:\test\"
virker den ikke.
Det er så heller ikke så vigtig  for det er kun txt filer som skal kopieres.

Men jeg tror vi kom et skridt videre og så alligevel for vi må vel konstatere den ikke vil med file1.filename men den vil gerne "direkte" så har du et godt råd?
Avatar billede anlu Nybegynder
19. september 2010 - 14:09 #12
At skrive et filnavn direkte i koden, så den altid bruger denne værdi. Fx har du i eksemplet hardcodet "C:\test\t.txt" - mit forslag er også at hardcode det første filnavn.
Bare for at tjekke om problemet er at FileCopy ikke fungerer som forventet eller om det er fordi der er noget med File1.
Avatar billede mega-hawk Nybegynder
19. september 2010 - 14:24 #13
Ja men så har jeg gjort det rigtig nok med at hardcode og det virkede jo fint.

Så vi må jo konstatere at det er galt med file1

Har også lige prøvet det her. Det virker heller ikke

Dim a As String
a = File1.FileName
FileCopy a, "c:\test\test.txt"

men det virker med at hardcode...
Så har du en fantastisk ide som jeg ikke har ;o)
Avatar billede anlu Nybegynder
19. september 2010 - 14:32 #14
Næh... jeg er ved at løbe tør for ideer... beklager
MsgBox a giver vel det du forventer, hvis du indsætter den lige før FileCopy?
Avatar billede mega-hawk Nybegynder
19. september 2010 - 14:42 #15
ja denne linje
MsgBox File1.FileName
giver den fil jeg klikker på i file listen

men jeg tror jeg vil prøve at lave mit program lidt om så.

Så bare for at lukke den her tråd så bare skriv et svar så får du points fordi du har brugt så meget tid på at hjælpe alligevel :o)

Og er sikker på jeg også kommer med flere spørgsmål for har ikke så meget styr på det her vb endnu, men man skal jo starte et sted for at lære det...
Avatar billede mega-hawk Nybegynder
19. september 2010 - 14:49 #16
jeg kan se jeg får brug for en måde at gå en mappe tilbage på.
ved du hvordan det gøres?

altså eks en mappe sturktur som denne

c:\
c:\vb
c:\vb\testfiles
c:\vb\testfiels\
c:\vb\menu

og programmet ligger i vb\menu
så noget i stil med App.path og så en tak tilbage og så ind i testfiles...
Er det muligt?
Avatar billede anlu Nybegynder
19. september 2010 - 15:05 #17
Hvilken version af VB bruger du egentlig? Det ligner på syntaksen noget VB6 - men hvis du alligevel først er ved at lære det, så synes jeg du skulle kaste dig over noget VB.NET i stedet. (Mulighederne for håndtering af mapper og filer er anderledes og bedre i .NET)

Behold du bare pointene - jeg ville bare gerne have hjulpet hvis jeg kunne - og vi fandt jo ikke en løsning.
Avatar billede mega-hawk Nybegynder
19. september 2010 - 15:19 #18
Det er vb6 jeg bruger ja.

Hvor stor er forskellen på VB6 og .NET da jeg har brugt en del timer på at læse online og brugt et par kr på bøger også om VB6 for at komme godt igang...

Og havde du en ide om det andet med en mappe tilbage?
Avatar billede anlu Nybegynder
19. september 2010 - 15:36 #19
Det er ved at være nogen tid siden jeg brugte VB6, men jeg vil tro at du i stien kan benytte "\..\" for at komme tilbage, fx app.path & "\..\testfiles". (Om den første backslash skal være der afhænger selvfølgelig af om den er der i forvejen i app.path.

Og der er godt nok en del forskel på VB6 og VB.Net, men det meste er til det bedre i .NET efter min mening. Og medmindre man skal bruge VB6 for at kunne vedligeholde noget gammel kode, så vil jeg mene at det ikke er værd at lære VB6, som er at betragte som gammel teknologi. Det er selvfølgelig ærgerligt for dig hvis du har investeret meget tid og mange kr i det, men nogle generelle programmeringsprincipper vil du jo stadig kunne overføre til VB.NET, og det at der er en lidt anderledes syntaks vænner du dig sikkert hurtigt til.
Avatar billede mega-hawk Nybegynder
19. september 2010 - 15:43 #20
Hm måske værd at prøve en dag...
Har også en gang beskæftiget mig med PHP og et eller andet sted synes jeg også noget PHP minder om VB6 så måske jeg skulle kigge lidt på VB.net en gang.

og ja "\..\" virker så det var da en stor hjælp så er du helt sikker på du ikke vil have points?
Jeg har så mange at jeg gerne deler ud af dem og vil gerne have lukket mine åbne spørgsmål og igen 10000000 tak for din hjælp.
Avatar billede anlu Nybegynder
19. september 2010 - 15:56 #21
så skidt da - nu jeg fik hjulpet dig med noget ;-)
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