[VB]zowel CopyFile / MoveFile geeft Permission Denied-error?

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 26-08 19:24
Ik ben bezig een "slim" zoekprogramma aan het bouwen, heb alleen het volgende probleem:

Ik heb een INI-file die wordt uitgelezen. Aan de hand van de variabelen die daarin staan, voert mijn zoek programma een aantal acties uit. :)

Stukje uit m'n INI:
code:
1
2
3
4
5
6
7
8
9
10
[MAIN]
startpath=C:\een_geldig_pad\op_mijn_schijf
diepte=3

[ACTIONS]
zipping=yes
action=copy
destinationpath=C:\een_ander_geldig_pad\op_mijn_schijf

...knip...


Zoals je ziet, geef ik oa een startpath, een diepte, en nog wat dingetjes op.
Nu gaat mijn programma loop-en door de folders net zo diep als ie mag gaan beginnende op het startpath. Daarin vind ie een aantal files mits ze voldoen aan een aantal criteria en die schrijft ie weg naar een txt file. Dat werkt allemaal al perfect :*)

Als zipping op "yes" staat roep ik een exe van winzip aan, die het zaakje inpakt. Vervolgens probeer ik die gecreëerde zip te kopieren naar het destinationpath.
Maar daar krijg ik een * FitNiX "Permission Denied" fout op. :'(
Als ik niet zip, dan probeer ik de gevonden files dmv CopyFile in een loop zelf te kopiëren naar het destinationpath. Ook dan krijg ik dezelfde error. :'(

• De zip of files zijn niet read-only,
• Op het moment dat ik de zip probeer te kopiëren, is ie klaar met inpakken,
• Ik krijg dezelfde foutmelding als ik het niet inpak, maar de files probeer te kopiëren,
• Er is geen ander bestand bezig met de files of met de zip.

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Draai je op Ntfs? Mischien is je doel map beveiligd.

Probeer je het toevallig met het Filesystemobject? Zo ja, dan moet je eens proberen Norton Antivirus uit te schakelen. (Als je dat hebt tenminste)

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 26-08 19:24
Supervisor schreef op 18 december 2002 @ 17:08:
Draai je op Ntfs? Mischien is je doel map beveiligd.

Probeer je het toevallig met het Filesystemobject? Zo ja, dan moet je eens proberen Norton Antivirus uit te schakelen. (Als je dat hebt tenminste)
Draai wel op NTFS, :o zal eens kijken of de map beveiligd is, maar als het goed is niet...
Ik werk met
code:
1
Set FileObject = CreateObject("Scripting.FileSystemObject")
Norton Antivirus heb ik niet...

Edit:
Heb alle rechten in die map :/

[ Voor 6% gewijzigd door FitNiX op 18-12-2002 17:14 ]


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 15-08 11:47

Sponge

Serious Game Developer

Hmm, you zou eventueel wel de Windows kopieer methode kunnen gebruiken.

Ik heb ooit progje gemaakt dat dit gebruikt, om gegevens van HD<>Ramdisk te kopieren bij opstarten/afsluiten. Misschien kan je dat ook wel gebruiken.

http://vbfibre.digitalrice.com/ramdisk.zip

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Kun je anders de code eens posten welke je gebruikt voor het kopieren?
Ik neem aan dat je wel ff een paar msgboxen hebt laten runnen met daar de paden in of niet?

Verwijderd

Kun je ipv winzip niet beter de pkzip.exe aanroepen, de shareware dos versie? wellicht heb je dan niet die problemen, allicht het proberen waard.

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Heb je wel een andere viruscanner dan?

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 26-08 19:24
Supervisor schreef op 18 December 2002 @ 17:37:
Kun je anders de code eens posten welke je gebruikt voor het kopieren?
Ik neem aan dat je wel ff een paar msgboxen hebt laten runnen met daar de paden in of niet?
Het probleem is niet dat ie de file niet kan vinden, hij heet geen toestemming om te kopiëren :?. Ik werk hier op een domein, weet niet of dat uitmaakt? Ik heb iig rechten om alles te doen: lezen, schrijven etc...

Code om te kopieëren:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub copyZip()
    Dim FileObject
    Set FileObject = CreateObject("Scripting.FileSystemObject")

    On Error GoTo error_handler
    FileObject.CopyFile App.Path & "\zips\" & sZipFile & ".zip", destinationpath, True

error_handler:
    If Err.Number = 70 Then
        msgbox "Geen toegang om te kopiëren...", vbcritical
    ElseIf Err.Number = 53 Then
        msgbox "Bestand niet gevonden...", vbcritical
    Else
        MsgBox "Zip niet gekopieerd..." & vbCrLf & "Err no: " & Err.Number & _
        vbCrLf & "Err omschr: " & Err.Description, vbcritical
    End If

    Set FileObject = Nothing
End Sub
En hij knalt er dus elke keer uit op het moment dat ie de zip moet kopiëren.. :'(


Edit:
robjanssen schreef op 18 december 2002 @ 19:14:
Heb je wel een andere viruscanner dan?
Nope...
Verwijderd schreef op 18 December 2002 @ 17:46:
Kun je ipv winzip niet beter de pkzip.exe aanroepen, de shareware dos versie? wellicht heb je dan niet die problemen, allicht het proberen waard.
Het probleem zit em niet in het zippen, maar in het kopiëren van de gecreerde zip erna... :/

[ Voor 27% gewijzigd door FitNiX op 19-12-2002 09:44 ]


Verwijderd

Wat is de precieze omschrijving van foutnummertje 70?

Als je de bestanden inpakt, gaan die dan rechtstreeks naar de zip in de 'beveiligde' dir? Wellicht een idee om eerst te zippen naar de windows\temp dir en daarna dit bestand te kopiëren naar de doeldirectory?

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Ik zat te denken dat het mischien kan komen dat winzip dat bestand nog geopend heeft, maar ik neem aan dat als je hem niet zipt winzip ook totaal niet aanroept :/, dus dan gaat dat niet op.

Heb je al eens 'hard coded' geprobeerd iets te koppieren? Dus niet met je variabelen, maar iets in de geest van

Visual Basic:
1
FileObject.CopyFile "C:\autoexec.bat", "C:\testdir\autoexec.bat", True

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 26-08 19:24
Verwijderd schreef op 19 December 2002 @ 11:17:
Wat is de precieze omschrijving van foutnummertje 70?

Als je de bestanden inpakt, gaan die dan rechtstreeks naar de zip in de 'beveiligde' dir? Wellicht een idee om eerst te zippen naar de windows\temp dir en daarna dit bestand te kopiëren naar de doeldirectory?
Afbeeldingslocatie: http://www.lustgeenbier.com/tweakers/scanner_error.gif

Ik pak de bestanden in naar een folder "zips" die in dezelfde map staat als het programma. Daarna wil ik hem kopiëren naar een in de ini opgegeven dir.
Die opgegeven dir bestaat...


Edit:
Supervisor schreef op 19 December 2002 @ 11:22:
Ik zat te denken dat het mischien kan komen dat winzip dat bestand nog geopend heeft, maar ik neem aan dat als je hem niet zipt winzip ook totaal niet aanroept :/, dus dan gaat dat niet op.
Nope

Heb je al eens 'hard coded' geprobeerd iets te koppieren? Dus niet met je variabelen, maar iets in de geest van
Visual Basic:
1
FileObject.CopyFile "C:\autoexec.bat", "C:\testdir\autoexec.bat", True
Geprobeerd, maar geeft dezelfde error :/

[ Voor 33% gewijzigd door FitNiX op 19-12-2002 12:12 ]


Verwijderd

Heb alle rechten in die map
Even een hersenspinsel, maar heeft het systeem rechten op die map. Je kunt toch een proces of programma starten dat als bepaalde gebruiker draait? toch? wellicht heeft dat programma dan niet voldoende rechten.

dit is niet een op zekerheid gebaseerd iets, want ik weet niet meer precies hoe dat nou zit met ntfs etc., maar het is allicht het discussieren waard. It might ring a bell, or it may not!

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 26-08 19:24
Verwijderd schreef op 19 December 2002 @ 12:57:
[...]


Even een hersenspinsel, maar heeft het systeem rechten op die map. Je kunt toch een proces of programma starten dat als bepaalde gebruiker draait? toch? wellicht heeft dat programma dan niet voldoende rechten.

dit is niet een op zekerheid gebaseerd iets, want ik weet niet meer precies hoe dat nou zit met ntfs etc., maar het is allicht het discussieren waard. It might ring a bell, or it may not!
* FitNiX Geen gering hoort :'(

Hoe check je dat :?

  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 15-06 23:37

Gé Brander

MS SQL Server

Kermit schreef op 19 december 2002 @ 14:14:
[...]
* Gé Brander Geen gering hoort :'(

Hoe check je dat :?
Geef even aan wie en wat er allemaal wat voor rechten heeft in die directory, dus niet alleen van jezelf

Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!


  • FitNiX
  • Registratie: April 2001
  • Laatst online: 26-08 19:24
c70070540 schreef op 19 December 2002 @ 15:52:
[...]

Geef even aan wie en wat er allemaal wat voor rechten heeft in die directory, dus niet alleen van jezelf
Bedoel je dit :?
Afbeeldingslocatie: http://www.lustgeenbier.com/tweakers/scanner_error2.gif
In deze map staat dus de zip die gekopieerd moet worden...

  • cvs79
  • Registratie: April 2002
  • Laatst online: 16:25
En de map waar het zip-bestand naar toe moet?

is er miasschien al een File in die map met de zelfde naam??

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 26-08 19:24
cvs79 schreef op 19 december 2002 @ 16:05:
En de map waar het zip-bestand naar toe moet?

is er misschien al een File in die map met de zelfde naam??
Nope, is een lege map. Die map heeft overigens dezelfde rechten als zips.

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Het lijk mij ook niet echt een programmatisch probleem eigenlijk. Als je gewoon via Kopieren / plakken doet in de verkenner. Doet ie het dan wel?

Verwijderd

Supervisor schreef op 19 december 2002 @ 16:24:
Het lijk mij ook niet echt een programmatisch probleem eigenlijk. Als je gewoon via Kopieren / plakken doet in de verkenner. Doet ie het dan wel?
Waarschijnlijk wel. Als hij als user op beide mappen alle rechten heeft, dan mag hij bestanden kopieren en plakken via de Verkenner (user credentials).

Probeer even het volgende:

zet de NTFS rechten (niet de permissions van sharing!) van de twee mappen op Everyone: allow all

werkt het nu wel?

  • Danfoss
  • Registratie: Mei 2000
  • Laatst online: 20:15

Danfoss

Deze ruimte is te koop..

Misschien een beetje domme vraag, maar waarom gebruik je het filesystemobject?

Ik gebruik altijd gewoon filecopy. Werkt dat niet?
Visual Basic:
1
filecopy source destination

Sys Specs


  • FitNiX
  • Registratie: April 2001
  • Laatst online: 26-08 19:24
Verwijderd schreef op 19 december 2002 @ 16:59:
[...]
Waarschijnlijk wel. Als hij als user op beide mappen alle rechten heeft, dan mag hij bestanden kopieren en plakken via de Verkenner (user credentials).
* FitNiX Klopt, dat werkt idd prima

Probeer even het volgende:
zet de NTFS rechten (niet de permissions van sharing!) van de twee mappen op Everyone: allow all
* FitNiX Zal ik nu ff doen...
werkt het nu wel?
Danfoss schreef op 19 December 2002 @ 21:44:
Misschien een beetje domme vraag, maar waarom gebruik je het filesystemobject?

Ik gebruik altijd gewoon filecopy. Werkt dat niet?
Visual Basic:
1
filecopy source destination
Ik gebruik die niet omdat ik die niet kende :D,
Maar nope, ook deze geeft een soortgelijke foutmelding :'(
Nummer: 75
Omschrijving: Path/File access error

  • FitNiX
  • Registratie: April 2001
  • Laatst online: 26-08 19:24
Verwijderd schreef op 19 December 2002 @ 16:59:
...knip...

Probeer even het volgende:
zet de NTFS rechten (niet de permissions van sharing!) van de twee mappen op Everyone: allow all
* FitNiX Gedaan, geen verschil
werkt het nu wel?
* FitNiX Nope.. :'(
Edit: |:(
Afbeeldingslocatie: http://images.tweakers.net/forum/templates/got/images/icons/quote.gif != Afbeeldingslocatie: http://images.tweakers.net/forum/templates/got/images/icons/edit.gif

[ Voor 28% gewijzigd door FitNiX op 20-12-2002 15:33 ]


Verwijderd

Ik ben zojuist maar eens met Google gaan zoeken, en de foutcode 70 betekent dat het bestand gelockt is door een andere gebruiker (of een systeemproces nl.). Het kan ook komen doordat je niet voldoende rechten hebt.

Als we ervan uitgaan dat je administrator rechten hebt, dan moet het .zip bestand gelockt zijn als je het wil gaan kopieren. En die lock zal dan geplaatst zijn door winzip aangezien die het bestand als laatst gebruikt. Toch maar eens de dos-versie van pkzip.exe proberen?

Misschien kun je hier iets mee, het bestand wordt eerst ge-unlockt door het te openen voor lezen. Aangezien het hier een simpel tekstbestand is kan dat makkelijk, of het ook bij je .zip werkt is een kwestie van uitprobere.

Dim intFh As Integer
Dim FSO As FileSystemObject
Set FSO = New FileSystemObject

intFh = FreeFile
Open "C:\CONFIG.SYS" For Input Lock Read As #intFh
FSO.CopyFile "C:\CONFIG.SYS", "C:\CONFIG.CPY", False 'error 70 here.
Set FSO = Nothing
Close

Nog iets gevonden wat mogelijk werkt: is de waarde van de variable DestinationPath afgesloten met een '\' ???? Schijnt nodig te zijn!

[ Voor 9% gewijzigd door Verwijderd op 20-12-2002 16:56 ]


  • FitNiX
  • Registratie: April 2001
  • Laatst online: 26-08 19:24
Verwijderd schreef op 20 december 2002 @ 16:53:
Ik ben zojuist maar eens met Google gaan zoeken, en de foutcode 70 betekent dat het bestand gelockt is door een andere gebruiker (of een systeemproces nl.). Het kan ook komen doordat je niet voldoende rechten hebt.

Als we ervan uitgaan dat je administrator rechten hebt, dan moet het .zip bestand gelockt zijn als je het wil gaan kopieren. * FitNiX 1 En die lock zal dan geplaatst zijn door winzip aangezien die het bestand als laatst gebruikt. Toch maar eens de dos-versie van pkzip.exe proberen?

Misschien kun je hier iets mee, het bestand wordt eerst ge-unlockt door het te openen voor lezen. Aangezien het hier een simpel tekstbestand is kan dat makkelijk, of het ook bij je .zip werkt is een kwestie van uitprobere.

Dim intFh As Integer
Dim FSO As FileSystemObject
Set FSO = New FileSystemObject

intFh = FreeFile
Open "C:\CONFIG.SYS" For Input Lock Read As #intFh
FSO.CopyFile "C:\CONFIG.SYS", "C:\CONFIG.CPY", False 'error 70 here.
Set FSO = Nothing
Close

* FitNiX 2 Nog iets gevonden wat mogelijk werkt: is de waarde van de variable DestinationPath afgesloten met een '\' ???? Schijnt nodig te zijn!
1 Ok, kan ik inkomen, maar dat is niet het geval als ik een txt file wil kopiëren... :? Die ik zelf snel in notepad gemaakt heb. Bij het kopiëren vd txt krijg ik dezelfde error :/
2 Zal ik ff sjekken...

Edit:
* FitNiX YAHOO!!!
Drinkus, ontzettend bedankt man. Je hebt me hier echt heel erg mee geholpen _/-\o_ _/-\o_
2 Daar sloot ik dus niet mee af nee, maar heb net geprobeerd voor de zip en voor de losse txt-files... EN HET WERKT NU WEL!!! 8) 8)
K*t backslash :(

[ Voor 15% gewijzigd door FitNiX op 20-12-2002 17:19 ]


Verwijderd

Alright! Da's goed nieuws! Altijd een goed gevoel als je iemand verder kunt helpen. Ik neem nog even van de mogelijkheid gebruik om even te zeiken op dit schijt foutmeldingen van Microsoft: "permission denied". Dat kan dus godverdomme veel oorzaken hebben, en wijst niet direct in de goede richting. Het is wel een logisch gevolg van de gemaakte fout, maar voor dat je daar achter bent.

Anyway, je kunt weer verder :) SLOTJE :) :)

[edit]
LOL: Why didn't you get a five year old? At least he understands it! So then I ask myself: why did it take us so long????? :P

[ Voor 23% gewijzigd door Verwijderd op 20-12-2002 19:17 ]


  • FitNiX
  • Registratie: April 2001
  • Laatst online: 26-08 19:24
Verwijderd schreef op 20 december 2002 @ 19:15:
Alright! Da's goed nieuws! Altijd een goed gevoel als je iemand verder kunt helpen. Ik neem nog even van de mogelijkheid gebruik om even te zeiken op dit schijt foutmeldingen van Microsoft: "permission denied". Dat kan dus godverdomme veel oorzaken hebben, en wijst niet direct in de goede richting. Het is wel een logisch gevolg van de gemaakte fout, maar voor dat je daar achter bent.

Anyway, je kunt weer verder :) SLOTJE :) :)

[edit]
LOL: Why didn't you get a five year old? At least he understands it! So then I ask myself: why did it take us so long????? :P
Idd, met dit soort foutmeldingen kan je idd geen zak. Is typisch een voorbeeld van hoe het niet moet :/

ps @ edit: Sja, ben geen 5 meer ;)
Pagina: 1