Question Taille dossier avec arborescence > 260 carac ??

Plus d'informations
il y a 8 ans 8 mois #20564 par rocketter
Alors j'ai différents test, mais j'ai des erreurs qui me prennent la tête.

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.

Plus d'informations
il y a 8 ans 8 mois #20568 par Philippe
salut rocketter

rocketter écrit:

Alors 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.

normal
EnumerateFileSystemEntries ne renvoie qu'une listes de nom (un tableau de string)

Alors 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 :

la encore normal
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.

Plus d'informations
il y a 8 ans 8 mois #20569 par rocketter
Ok je te remercie je testerai ça a mon retour de vacances

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 7 mois #20690 par rocketter
Bonjour,

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.

Plus d'informations
il y a 8 ans 7 mois #20692 par Philippe
salut rocketter

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é ! :blink:
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.

Plus d'informations
il y a 8 ans 7 mois #20694 par Philippe
bon je crois que j'ai retrouvé les post de Laurent mais en faite ce n'était pas des exemples d'utilisations voir ce tropic

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.

Temps de génération de la page : 0.090 secondes
Propulsé par Kunena