Question
Taille dossier avec arborescence > 260 carac ??
- rocketter
- Auteur du sujet
- Hors Ligne
- Membre senior
- Messages : 46
- Remerciements reçus 0
D'abord lorsque j'essaie ceci :
[code:1]foreach ($element in [Alphaleonis.Win32.Filesystem.Directory]::EnumerateFileSystemEntries(\"C:\\test\", '*', [System.IO.SearchOption]::AllDirectories))
{
$element.Length
}[/code:1]
Je n'obtiens pas la taille de chacun des éléments, mais le nombre de caractères qui composent leur noms.
Alors je tente ceci :
[code:1]
foreach ($element in [Alphaleonis.Win32.Filesystem.Directory]::EnumerateFileSystemEntries(\"C:\\test\", '*', [System.IO.SearchOption]::AllDirectories))
{
[Alphaleonis.Win32.Filesystem.File]::GetSize($element)
}
[/code:1]
j'ai la taille de mes éléments, chouette lol mais en bonus track j'ai cette erreur pour chacun des sous-dossiers dans mon dossier c:\test :
Exception lors de l'appel de « GetSize » avec « 1 » argument(s) : « (5) Accès refusé: [\\?\C:\test\sous-test] »
Au caractère Ligne:9 : 1
+ $taille += [Alphaleonis.Win32.Filesystem.File]::GetSize($element)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : UnauthorizedAccessException
Alors que j'exécute powershell en administrateur, j'ai même essayé en amont de mon script avec ces lignes de code :
[code:1]$privilege = [Alphaleonis.Win32.Security.Privilege]::Backup
$privilegeEnabler = New-Object Alphaleonis.Win32.Security.PrivilegeEnabler($privilege)[/code:1]
Mais rien n'y fait, alors je sais que je pourrais ignorer cette erreur, vu que j'ai l'info que je souhaite, mais ce n'est pas une façon propre de coder qui me plaise.
Si vous pouviez m'éclairer là-dessus <br><br>Message édité par: rocketter, à: 31/07/15 14:39
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
- Messages : 1778
- Remerciements reçus 21
rocketter écrit:
normalAlors j'ai différents test, mais j'ai des erreurs qui me prennent la tête.
D'abord lorsque j'essaie ceci :
......
Je n'obtiens pas la taille de chacun des éléments, mais le nombre de caractères qui composent leur noms.
EnumerateFileSystemEntries ne renvoie qu'une listes de nom (un tableau de string)
la encore normalAlors je tente ceci :
......
j'ai la taille de mes éléments, chouette lol mais en bonus track j'ai cette erreur pour chacun des sous-dossiers dans mon dossier c:\test :
EnumerateFileSystemEntries renvoie une listes de nom de fichiers et de répertoires
tu dois utilisé EnumerateFiles pour n'avoir que la listes de fichiers
voir la documentaions de AlphsFS pour les détails
Connexion ou Créer un compte pour participer à la conversation.
- rocketter
- Auteur du sujet
- Hors Ligne
- Membre senior
- Messages : 46
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- rocketter
- Auteur du sujet
- Hors Ligne
- Membre senior
- Messages : 46
- Remerciements reçus 0
désolé de la réponse tardive, alors j'ai essayé avec EnumerateFiles mais là encore toujours la même erreur, à savoir :
Exception lors de l'appel de « GetSize » avec « 1 » argument(s) : « (5) Accès refusé
ou alors :
Exception lors de l'appel de « GetSize » avec « 1 » argument(s) : « (32) Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
- Messages : 1778
- Remerciements reçus 21
je t'avoue n'avoir fait qu'un seul script avec AlphasFS
j'ai le même message que toi sur les fichiers ouvert :
[code:1][Alphaleonis.Win32.Filesystem.File]::GetSize($element)
Exception lors de l'appel de «GetSize» avec «1» argument(s): «(32) Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus:
[\\?\C:\Users\xxx\NTUSER.DAT]»
Au caractère Ligne:1 : 1
+ [Alphaleonis.Win32.Filesystem.File]::GetSize($element)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:«») [], MethodInvocationException
+ FullyQualifiedErrorId : IOException[/code:1]
Laurent Dardenne a plus d'expérience que moi sur cet assembly
de plus il a fait quelques exemples d'utilisation que je ne retrouve pas
Laurent si tu lis ce post stp :
1) peut tu nous donné le liens vers les exemples d'utilisations de AlphasFS que tu a fais. merci
2) a tu une idée sur ce problème :
lorsque un fichier est ouvert (ou sans autorisation de lecture) la fonction [Alphaleonis.Win32.Filesystem.File]::GetSize est bloqué !
merci d'avance
de mon coté je vers relire la doc de alphaFS pour voir si il y a une autre facon de faire un simple DIR
petit complément : sur les cinq fonction suivante de Alphaleonis.Win32.Filesystem.File seule GetSize a ce probléme :
[Alphaleonis.Win32.Filesystem.File]::GetLastAccessTimeutc($element)
[Alphaleonis.Win32.Filesystem.File]::GetLastWriteTimeUtc($element)
[Alphaleonis.Win32.Filesystem.File]::GetCreationTimeutc($element)
[Alphaleonis.Win32.Filesystem.File]::GetSize($element)
[Alphaleonis.Win32.Filesystem.File]::GetAccessControl($element).Owner<br><br>Message édité par: 6ratgus, à: 26/08/15 12:09
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
- Messages : 1778
- Remerciements reçus 21
mais il utilise [Alphaleonis.Win32.Filesystem.Directory]::GetDirectories($SourcePath)
peut être un début de solution !
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Taille dossier avec arborescence > 260 carac ??