Question Taille dossier avec arborescence > 260 carac ??

Plus d'informations
il y a 8 ans 7 mois #20695 par Laurent Dardenne
Salut,
6ratgus écrit:

Laurent si tu lis ce post stp :
2) a tu une idée sur ce problème :

Je lu rapido la réponse du jour, je t'ai laissé répondre.
Pour le pb de verrou, certains sont exclusifs, dans ce cas on ne peut rien faire (lire la MFT :whistle: ), et idem pour les pb de droits ( la MFT utilses-t-elle les ACL ?).
Pour GetSize, faudrait regarder le code et les API utilisée ou + simplement poser la question aux développeurs :). Le pb est peut référencé dans le forum 'issues'.

Pour GetDirectories, elle renvoie un objet fichier et pas un nom de fichier. Si je me souviens bien cette DLL peut manipuler des ACL sur ces fichiers 'de nom long'.

Enfin, je n'ai pas trop le temps de creuser ce pb.
Au cas où, le post du dernier lien cité contient un script de création d'une arborescence de ce type.

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 7 mois #20696 par Philippe
merci Laurent pour ta réponse

bon une longue lecture de la doc, il faut utilisé GetFileSystemEntryInfo pour avoir les infos d'un fichier
exemple :

[code:1]
$SourcePath = $Env:UserProfile

[Alphaleonis.Win32.Filesystem.File]::GetFileSystemEntryInfo($SourcePath + '\NTUSER.DAT')


AlternateFileName :
Attributes : Hidden, System, Archive, NotContentIndexed
Created : 15/10/2014 18:17:27
FileName : NTUSER.DAT
FileSize : 8650752
FullPath : C:\Users\xxx\NTUSER.DAT
IsDirectory : False
IsMountPoint : False
IsReparsePoint : False
IsSymbolicLink : False
LastAccessed : 25/06/2015 11:30:40
LastModified : 26/08/2015 14:55:41
LongFullPath : \\?\C:\Users\xxx\NTUSER.DAT
ReparsePointTag : None[/code:1]
pour le test, j'ai utilisé le fichier NTUSER.DAT de utilisateur courant car il est ouvert par l'OS et donc provoque l'erreur vu plus haut

GetFileSystemEntryInfo te renvoie un objet de type Alphaleonis.Win32.Filesystem.FileSystemEntryInfo qui contient la propriété Filesize recherché !!!

donc un code du type suivant te renverra la taille du fichier même si il est ouvert ou autre ! :
[code:1]
([Alphaleonis.Win32.Filesystem.File]::GetFileSystemEntryInfo($SourcePath + '\NTUSER.DAT')).FileSize
[/code:1]<br><br>Message édité par: 6ratgus, à: 26/08/15 15:14

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

Plus d'informations
il y a 8 ans 7 mois #20697 par Laurent Dardenne
Pour ceci :
6ratgus écrit:

[code:1]
$SourcePath = $Env:UserProfile
[/code:1]

Il est préférable d'utiliser un nom long :
[code:1]$LongDirectory = [Alphaleonis.Win32.Filesystem.Path]::GetLongPath(($Sourcepath+'\file'))[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 7 mois #20699 par rocketter
Merci beaucoup les gars pour votre aide !! je vais essayer de tester ça dans la journée

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

Plus d'informations
il y a 8 ans 7 mois #20700 par rocketter
J'ai pu tester, c'est vrai que je n'ai plus le message d'erreur concernant le fichier utilisé par un autre processus. Par contre subsiste toujours l'erreur d'accès refusé.

Après si je me réfère à ce qu'à dit Laurent :

Pour le pb de verrou, certains sont exclusifs, dans ce cas on ne peut rien faire (lire la MFT ), et idem pour les pb de droits ( la MFT utilses-t-elle les ACL ?).


Il semble que ce souci ne puisse pas être résolu. Tant pis.

Merci de votre aide en tout cas.

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

Plus d'informations
il y a 8 ans 7 mois #20701 par Laurent Dardenne
rocketter écrit:

Il semble que ce souci ne puisse pas être résolu

Disons que je ne sais pas faire :)
S'il existe une solution ce sera autour de code bas niveau
Dans le cas où un verrou existe sur un fichier que renvoi, dans une session cmd.exe, la commande Dir ?
Et avec WMI ?

Tutoriels PowerShell

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

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