OVH Cloud OVH Cloud

Erreur 75 avec RmDir

14 réponses
Avatar
Pascal
bonsoir,
une petite aide bienvenue, ne comprends pas pourquoi la suppression d'un
dossier (avec RMDIR) me génère une erreur 75 (Erreur dans le Chemin d'accèsà
??????????
Toute idée bienvenue
Merci
Pascal

voici le code :

Private Sub cmdSupprimerAlbum_Click()
Dim DossierSup As String

'chemin = d:\MonDossier
'initialise le dossier a supprimer
DossierSup = Chemin & "\" &
Me.ListView1.ListItems(ListView1.selectedItem.Index)

rep = MsgBox("vous avez choisi de supprimer :" & vbCrLf &
Me.ListView1.ListItems(ListView1.selectedItem.Index) & vbCrLf & vbCrLf & _
"Vous confirmez ce choix ?", vbYesNo, "Suppression")
If rep = vbYes Then
'supprime tous les fichiers du dossier
Kill DossierSup & "\*.*"
'enleve l'attribut lecture seule du dossier
SetAttr DossierSup, vbNormal
'supprime le dossier
RmDir DossierSup
End If
'Rafraichit la listView
Call ShowRep

End Sub

10 réponses

1 2
Avatar
Gloops
Bonjour,

Ah, moi, j'ai une erreur 75 qui apparaît à l'ouverture de mon programme,
après réinstallation de ma machine et mise à jour de Windows, alors
qu'il fonctionnait bien jusque là.

Comme j'avais mal lu l'affichage de FileMon j'ai intitulé le fil
"Prefetch et bazar immonde", en fait après avoir trouvé le programme on
cherche des fichiers avec le même nom suivi de .Manifest, .Local, .cfg
(voir hier à 18h21 dans microsoft.public.fr.windowsxp)

ça fait une piste, mais je n'ai en fait pas encore compris les tenants
et aboutissants au juste, bien que le lien que j'ai trouvé parle de mise
au format Windows XP -mais le problème ne se pose que pour deux programmes.

Donne voir quelques exemples de la valeur de ListView1, et donc de
DossierSup, qui posent problème ...

Pendant qu'on y est, la réponse de "DIR" avec DossierSup comme argument.

Bien sûr j'imagine que D: n'est pas un lecteur de CD ...
______________________________________
Le 25/08/2006 00:09, Pascal a écrit :
bonsoir,
une petite aide bienvenue, ne comprends pas pourquoi la suppression d'un
dossier (avec RMDIR) me génère une erreur 75 (Erreur dans le Chemin d'accèsà
??????????
Toute idée bienvenue
Merci
Pascal

voici le code :

Private Sub cmdSupprimerAlbum_Click()
Dim DossierSup As String

'chemin = d:MonDossier
'initialise le dossier a supprimer
DossierSup = Chemin & "" &
Me.ListView1.ListItems(ListView1.selectedItem.Index)

rep = MsgBox("vous avez choisi de supprimer :" & vbCrLf &
Me.ListView1.ListItems(ListView1.selectedItem.Index) & vbCrLf & vbCrLf & _
"Vous confirmez ce choix ?", vbYesNo, "Suppression")
If rep = vbYes Then
'supprime tous les fichiers du dossier
Kill DossierSup & "*.*"
'enleve l'attribut lecture seule du dossier
SetAttr DossierSup, vbNormal
'supprime le dossier
RmDir DossierSup
End If
'Rafraichit la listView
Call ShowRep

End Sub



Avatar
X
Bonjour,

Ma réponse est peut être incomplète, mais, tu mets:
'chemin = d:MonDossier
Or c'est
chemin = "d:MonDossier"

Car à:
DossierSup = Chemin & "" &
Ta variable contient "" seulement, du fait que chemin est inhibé (et n'est
pas ici déclaré)

Et si tu fais ça c'est plus court:
chemin = d:MonDossier"

Mais tu peux tout mettre d'un coup:
DossierSup = "d:MonDossier" &
Me.ListView1.ListItems(ListView1.selectedItem.Index)

L'erreur vient peut être de là, affiche, par exemple:

dim niveau as byte
niveau=0
msgbox DossierSup
on error goto erreur
kill...
niveau = 1
set...
niveau = 2
rm...
niveau = 3
exit sub
erreur:
MsgBox Err.Number & " niveau = " & niveau & vblf & Err.Description & " : " &
Err.source
on error resume next
end sub
----------------------

J'ai fait un petit logiciel gratuit qui attrape l'adresse d'un fichier après
avoir pointé dessus, ici:
"Chemin de fichier"
http://irolog.free.fr/gratis/index.htm#c1
Par copier/coller tu as ensuite exactement l'adresse sans risque d'erreur...

----------------------------------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Pascal" a écrit dans le message de news:
%
bonsoir,
une petite aide bienvenue, ne comprends pas pourquoi la suppression d'un
dossier (avec RMDIR) me génère une erreur 75 (Erreur dans le Chemin
d'accèsà
??????????
Toute idée bienvenue
Merci
Pascal

voici le code :

Private Sub cmdSupprimerAlbum_Click()
Dim DossierSup As String

'chemin = d:MonDossier
'initialise le dossier a supprimer
DossierSup = Chemin & "" &
Me.ListView1.ListItems(ListView1.selectedItem.Index)

rep = MsgBox("vous avez choisi de supprimer :" & vbCrLf &
Me.ListView1.ListItems(ListView1.selectedItem.Index) & vbCrLf & vbCrLf & _
"Vous confirmez ce choix ?", vbYesNo, "Suppression")
If rep = vbYes Then
'supprime tous les fichiers du dossier
Kill DossierSup & "*.*"
'enleve l'attribut lecture seule du dossier
SetAttr DossierSup, vbNormal
'supprime le dossier
RmDir DossierSup
End If
'Rafraichit la listView
Call ShowRep

End Sub



Avatar
Gloops
Salut,

Oublie mon message précédent, et vérifie que tu as bien les droits
voulus sur le fichier. Pour ce qui me concerne c'était ça le problème.
Avatar
Gloops
Salut,

Est-ce que je me trompe, ou si le fichier (ou répertoire) cherché
n'existe pas, on a une erreur 2, et non 75 ?

________________________________
Le 25/08/2006 08:01, X a écrit :
Bonjour,

Ma réponse est peut être incomplète, mais, tu mets:
'chemin = d:MonDossier
Or c'est
chemin = "d:MonDossier"

Car à:
DossierSup = Chemin & "" &
Ta variable contient "" seulement, du fait que chemin est inhibé (et n'est
pas ici déclaré)

Et si tu fais ça c'est plus court:
chemin = d:MonDossier"

Mais tu peux tout mettre d'un coup:
DossierSup = "d:MonDossier" &
Me.ListView1.ListItems(ListView1.selectedItem.Index)

L'erreur vient peut être de là, affiche, par exemple:

dim niveau as byte
niveau=0
msgbox DossierSup
on error goto erreur
kill...
niveau = 1
set...
niveau = 2
rm...
niveau = 3
exit sub
erreur:
MsgBox Err.Number & " niveau = " & niveau & vblf & Err.Description & " : " &
Err.source
on error resume next
end sub
----------------------

J'ai fait un petit logiciel gratuit qui attrape l'adresse d'un fichier après
avoir pointé dessus, ici:
"Chemin de fichier"
http://irolog.free.fr/gratis/index.htm#c1
Par copier/coller tu as ensuite exactement l'adresse sans risque d'erreur...

----------------------------------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Pascal" a écrit dans le message de news:
%
bonsoir,
une petite aide bienvenue, ne comprends pas pourquoi la suppression d'un
dossier (avec RMDIR) me génère une erreur 75 (Erreur dans le Chemin
d'accèsà
??????????
Toute idée bienvenue
Merci
Pascal

voici le code :

Private Sub cmdSupprimerAlbum_Click()
Dim DossierSup As String

'chemin = d:MonDossier
'initialise le dossier a supprimer
DossierSup = Chemin & "" &
Me.ListView1.ListItems(ListView1.selectedItem.Index)

rep = MsgBox("vous avez choisi de supprimer :" & vbCrLf &
Me.ListView1.ListItems(ListView1.selectedItem.Index) & vbCrLf & vbCrLf & _
"Vous confirmez ce choix ?", vbYesNo, "Suppression")
If rep = vbYes Then
'supprime tous les fichiers du dossier
Kill DossierSup & "*.*"
'enleve l'attribut lecture seule du dossier
SetAttr DossierSup, vbNormal
'supprime le dossier
RmDir DossierSup
End If
'Rafraichit la listView
Call ShowRep

End Sub







Avatar
Gloops
L'autre jour j'ai observé que c'était une bonne idée, dans une procédure
d'erreur, d'afficher, en plus du nom du programme, la ligne de commande
qui lui a été passée, du fait qu'un programme peut être appelé plusieurs
fois dans un démarrage de session, avec des arguments différents, et que
dans ce cas ça aide bien de savoir avec quels arguments on a eu un
problème. Penser, aussi, à bien nommer le projet et l'application par
Projet / Propriétés, nom du projet dans l'onglet Général, et surtout
Application / Titre dans l'onglet Créer.

Là, je vois une piste de travail pour l'amélioration de la procédure
d'erreur.

Il me semble que l'accès à un fichier pourrait idéalement se faire à
travers une fonction prévue à cet effet (qui peut retourner le numéro du
fichier ouvert, ou zéro si erreur), avec l'avantage qu'en cas d'erreur
on a le chemin du fichier dans une variable et que la procédure d'erreur
de cette fonction peut très bien afficher le chemin du fichier. Pour
l'utilisateur, ça facilite très grandement la recherche de la solution.


D'ailleurs, pour être honnête je ne suis pas le premier à proposer ça,
hélas je ne l'ai pas fait et maintenant ça me retombe sur le nez.
Avatar
Pascal
Hello X,
merci pour ta réponse
mais le problème ne vient pas de là!
j'ai indiqué chemin = D:Mondossier pour que vous compreniez ce que chemin
valait.
chemin vaut bien sur "d:Mondossier" et chemin est initialisé dans un module
au démarrage
merci quand même
PAscal

"X" a écrit dans le message de
news:%
Bonjour,

Ma réponse est peut être incomplète, mais, tu mets:
'chemin = d:MonDossier
Or c'est
chemin = "d:MonDossier"

Car à:
DossierSup = Chemin & "" &
Ta variable contient "" seulement, du fait que chemin est inhibé (et


n'est
pas ici déclaré)

Et si tu fais ça c'est plus court:
chemin = d:MonDossier"

Mais tu peux tout mettre d'un coup:
DossierSup = "d:MonDossier" &
Me.ListView1.ListItems(ListView1.selectedItem.Index)

L'erreur vient peut être de là, affiche, par exemple:

dim niveau as byte
niveau=0
msgbox DossierSup
on error goto erreur
kill...
niveau = 1
set...
niveau = 2
rm...
niveau = 3
exit sub
erreur:
MsgBox Err.Number & " niveau = " & niveau & vblf & Err.Description & " : "


&
Err.source
on error resume next
end sub
----------------------

J'ai fait un petit logiciel gratuit qui attrape l'adresse d'un fichier


après
avoir pointé dessus, ici:
"Chemin de fichier"
http://irolog.free.fr/gratis/index.htm#c1
Par copier/coller tu as ensuite exactement l'adresse sans risque


d'erreur...

----------------------------------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
--------------------------------------------------------------------------


----------
"Pascal" a écrit dans le message de news:
%
> bonsoir,
> une petite aide bienvenue, ne comprends pas pourquoi la suppression d'un
> dossier (avec RMDIR) me génère une erreur 75 (Erreur dans le Chemin
> d'accèsà
> ??????????
> Toute idée bienvenue
> Merci
> Pascal
>
> voici le code :
>
> Private Sub cmdSupprimerAlbum_Click()
> Dim DossierSup As String
>
> 'chemin = d:MonDossier
> 'initialise le dossier a supprimer
> DossierSup = Chemin & "" &
> Me.ListView1.ListItems(ListView1.selectedItem.Index)
>
> rep = MsgBox("vous avez choisi de supprimer :" & vbCrLf &
> Me.ListView1.ListItems(ListView1.selectedItem.Index) & vbCrLf & vbCrLf &


_
> "Vous confirmez ce choix ?", vbYesNo, "Suppression")
> If rep = vbYes Then
> 'supprime tous les fichiers du dossier
> Kill DossierSup & "*.*"
> 'enleve l'attribut lecture seule du dossier
> SetAttr DossierSup, vbNormal
> 'supprime le dossier
> RmDir DossierSup
> End If
> 'Rafraichit la listView
> Call ShowRep
>
> End Sub
>




Avatar
Pascal
hello Gloops
Exact l'erreur 2 est: Le fichier spécifié est introuvable
l'erreur 75 concerne visiblement l'attribut Lecture seule
Attribut que j'enlève avec Setattr, chemin, vbnormal
comme tu le dit peut être une question de droit que je n'aurais pas pour
enlever cette attribut????
merci de tes idées
Pascal

"Gloops" a écrit dans le message de
news:
Salut,

Est-ce que je me trompe, ou si le fichier (ou répertoire) cherché
n'existe pas, on a une erreur 2, et non 75 ?

________________________________
Le 25/08/2006 08:01, X a écrit :
> Bonjour,
>
> Ma réponse est peut être incomplète, mais, tu mets:
> 'chemin = d:MonDossier
> Or c'est
> chemin = "d:MonDossier"
>
> Car à:
> DossierSup = Chemin & "" &
> Ta variable contient "" seulement, du fait que chemin est inhibé (et


n'est
> pas ici déclaré)
>
> Et si tu fais ça c'est plus court:
> chemin = d:MonDossier"
>
> Mais tu peux tout mettre d'un coup:
> DossierSup = "d:MonDossier" &
> Me.ListView1.ListItems(ListView1.selectedItem.Index)
>
> L'erreur vient peut être de là, affiche, par exemple:
>
> dim niveau as byte
> niveau=0
> msgbox DossierSup
> on error goto erreur
> kill...
> niveau = 1
> set...
> niveau = 2
> rm...
> niveau = 3
> exit sub
> erreur:
> MsgBox Err.Number & " niveau = " & niveau & vblf & Err.Description & " :


" &
> Err.source
> on error resume next
> end sub
> ----------------------
>
> J'ai fait un petit logiciel gratuit qui attrape l'adresse d'un fichier


après
> avoir pointé dessus, ici:
> "Chemin de fichier"
> http://irolog.free.fr/gratis/index.htm#c1
> Par copier/coller tu as ensuite exactement l'adresse sans risque


d'erreur...
>
> ----------------------------------
> Site logiciels
> http://irolog.free.fr
> Mail
> http://irolog.free.fr/ecrire/index.htm
> Site perso
> http://irolog.free.fr/joe/index.htm
> Principe d'utilisation des news Groups
> http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm

--------------------------------------------------------------------------


----------
> "Pascal" a écrit dans le message de news:
> %
>> bonsoir,
>> une petite aide bienvenue, ne comprends pas pourquoi la suppression


d'un
>> dossier (avec RMDIR) me génère une erreur 75 (Erreur dans le Chemin
>> d'accèsà
>> ??????????
>> Toute idée bienvenue
>> Merci
>> Pascal
>>
>> voici le code :
>>
>> Private Sub cmdSupprimerAlbum_Click()
>> Dim DossierSup As String
>>
>> 'chemin = d:MonDossier
>> 'initialise le dossier a supprimer
>> DossierSup = Chemin & "" &
>> Me.ListView1.ListItems(ListView1.selectedItem.Index)
>>
>> rep = MsgBox("vous avez choisi de supprimer :" & vbCrLf &
>> Me.ListView1.ListItems(ListView1.selectedItem.Index) & vbCrLf & vbCrLf


& _
>> "Vous confirmez ce choix ?", vbYesNo, "Suppression")
>> If rep = vbYes Then
>> 'supprime tous les fichiers du dossier
>> Kill DossierSup & "*.*"
>> 'enleve l'attribut lecture seule du dossier
>> SetAttr DossierSup, vbNormal
>> 'supprime le dossier
>> RmDir DossierSup
>> End If
>> 'Rafraichit la listView
>> Call ShowRep
>>
>> End Sub
>>
>
>


Avatar
Pascal
ReHELLO,
quand tu dit les droits, ben je les ai puisque en dehors de l'environnement
de VB6 je peux supprimer, je suis le seul utilisteur




"Gloops" a écrit dans le message de
news:
Salut,

Oublie mon message précédent, et vérifie que tu as bien les droits
voulus sur le fichier. Pour ce qui me concerne c'était ça le problème.


Avatar
Pascal
Voilà un code qui fonctionne et qui supprime proprement fichiers et dossiers
la commande pour appeler cette sub est : DelDir(NomDossier,True) true
efface dossier et fichiers False n'éfface que les fichiers
Cela aidera certainement d'autre dans le même cas
Pascal

==================================================================== Public Sub DelDir(ByVal PStrPath As String, Optional ByVal PBolDelSubDir As
Boolean = True)
Const MODULE = "DelDir"
Dim LStrNomFic As String

On Error GoTo TrtErrDelDir

If right$(PStrPath, 1) = "" Then PStrPath = left$(PStrPath,
Len(PStrPath) - 1)

' Parcours récursif des sous-répertoires.

If PBolDelSubDir Then
Do
LStrNomFic = Dir(PStrPath & "*.*", vbDirectory)
While LStrNomFic = "." Or LStrNomFic = ".." Or (GetAttr(PStrPath
& "" & LStrNomFic) And vbDirectory) <> vbDirectory
LStrNomFic = Dir
Wend

If LStrNomFic <> "" And (GetAttr(PStrPath & "" & LStrNomFic)
And vbDirectory) = vbDirectory Then
Call DelDir(PStrPath & "" & LStrNomFic)
End If
Loop Until LStrNomFic = ""
End If

' Suppression des fichiers se trouvant dans le répertoire en cours.

LStrNomFic = Dir(PStrPath & "*.*", vbNormal + vbReadOnly + vbHidden +
vbSystem + vbArchive)
While LStrNomFic <> ""
SetAttr PStrPath & "" & LStrNomFic, vbNormal
DoEvents

Kill PStrPath & "" & LStrNomFic
DoEvents

LStrNomFic = Dir
Wend

If Len(PStrPath) > 3 Then
SetAttr PStrPath, vbNormal
DoEvents

RmDir PStrPath
End If

ExitDelDir:

DoEvents

Exit Sub

TrtErrDelDir:

MsgBox "MODULE : " & MODULE & vbCrLf _
& "PARAM. :" & vbCrLf _
& " Path = " & PStrPath & vbCrLf _
& " SubDir = " & PBolDelSubDir & vbCrLf _
& "ERREUR : " & Err.Number & vbCrLf _
& Err.Description, vbCritical, App.EXEName

Resume ExitDelDir

End Sub
====================================================================



"Pascal" a écrit dans le message de
news:%
bonsoir,
une petite aide bienvenue, ne comprends pas pourquoi la suppression d'un
dossier (avec RMDIR) me génère une erreur 75 (Erreur dans le Chemin


d'accèsà
??????????
Toute idée bienvenue
Merci
Pascal

voici le code :

Private Sub cmdSupprimerAlbum_Click()
Dim DossierSup As String

'chemin = d:MonDossier
'initialise le dossier a supprimer
DossierSup = Chemin & "" &
Me.ListView1.ListItems(ListView1.selectedItem.Index)

rep = MsgBox("vous avez choisi de supprimer :" & vbCrLf &
Me.ListView1.ListItems(ListView1.selectedItem.Index) & vbCrLf & vbCrLf & _
"Vous confirmez ce choix ?", vbYesNo, "Suppression")
If rep = vbYes Then
'supprime tous les fichiers du dossier
Kill DossierSup & "*.*"
'enleve l'attribut lecture seule du dossier
SetAttr DossierSup, vbNormal
'supprime le dossier
RmDir DossierSup
End If
'Rafraichit la listView
Call ShowRep

End Sub



Avatar
Gloops
Ah, ça change tout.
Vérifie quand même qu'avec le bloc-notes tu peux modifier le contenu.

Il n'y aurait pas un autre programme qui bloquerait le fichier ?
Par exemple tu aurais oublié une copie de ton programme que tu aurais
lancé pour test, et qui n'aurait pas été fermée.
_____________________________________
Le 25/08/2006 11:50, Pascal a écrit :
ReHELLO,
quand tu dit les droits, ben je les ai puisque en dehors de l'environnement
de VB6 je peux supprimer, je suis le seul utilisteur




"Gloops" a écrit dans le message de
news:
Salut,

Oublie mon message précédent, et vérifie que tu as bien les droits
voulus sur le fichier. Pour ce qui me concerne c'était ça le problème.





1 2