Lister fichiers disque dur avec chemin

Bonjour

Pour des raisons de sauvegarde, je dois renommer, un certain nombre de fichiers, dont le chemin dépasse un certain nombre de caractères, pour cause de limite systè

me

il me faut donc les lister, les renommer manuellement dans une colonne adjacente, puis les réinjecter avec leurs nouveaux noms dans le répertoire source

Détail et début de procédure dans le fichier joint

merci

Bonjour,

Une remarque : dans le code donné le répertoire racine sur lequel itérer est un disque. Il peut y avoir une très grande quantité de fichiers dans l'ensemble de ses sous-dossiers, ça peut très vite devenir une usine à gaz (et à plantage) votre affaire.

Ne serait-il pas pertinent, de premier abord, de reporter dans XL seulement les fichiers dépassant la limite de caractères ? puisque les autres vous n'y touchez pas de toute facon.

Et encore une fois faites attention, XL n'est pas un gestionnaire de fichiers et ça peut très vite mouliner un truc comme ça. Il existe de base dans windows avec un peu de powershell des outils pour réaliser ce genre de choses (par exemple : Top 3 Ways to Find Long Paths & File Names in Windows 11, 10, 8 (mindgems.com)).

Mais bon je ne veux pas vous forcer la main, si vous avez relativement peu de fichiers c'est jouable manuellement avec XL.

Merci pour le lien

Pour ce qui est de me forcer la main, à un problème donné, je cherche une solution rapide, en recherchant sur le net, j'ai vu que vba, était compliqué à mettre en oeuvre, ne connaissant pas l'univers du possible, je m'était orienté vers celui-ci, mais si une solution plus simple existe, je suis preneur

J'ai essayé la syntaxe, on me demande de mettre à jour powershell, ce que je vais essayer de faire

j'ai aussi cherché, un script, de transfert des dits fichiers, vers un nouveau répertoire, pas essayé, puisque nouvelle version pas installé

Celui-ci, vous semble t-il coherent :

To transfer files with long names (greater than 260 characters) using PowerShell 7, you can utilize the Get-ChildItem cmdlet combined with Where-Object to filter the files based on their full path length. Additionally, you will need to use the Copy-Item cmdlet to perform the actual file transfer. Here's a script that accomplishes this:

powershell<code><i># Define source and destination directories</i>
$sourceDir = "C:\path\to\source"
$destinationDir = "C:\path\to\destination"

<i># Ensure the destination directory exists</i>
<b>if</b> (-not (Test-Path -Path $destinationDir)) {
    New-Item -ItemType Directory -Path $destinationDir
}

<i># Get files with long paths and copy them to the destination</i>
Get-ChildItem -Path $sourceDir -Recurse -Force -ErrorAction SilentlyContinue |
Where-Object { $_.FullName.Length -gt 260 } |
ForEach-Object {
    <i># Construct the destination path</i>
    $destPath = Join-Path -Path $destinationDir -ChildPath $_.Name

    <i># Copy the file to the destination</i>
    Copy-Item -Path $_.FullName -Destination $destPath -Force
}
</code>

Re, comme vous je ne connais pas beaucoup powershell mais oui le code semble faire exactement ce que vous voulez, et sera probablement instantané là où VBA peut prendre des minutes voir rapidement des heures (le code VBA aussi propre soit-il doit faire face à beaucoup d'interfaces là ou PowerShell est natif à Windows, plus moderne, et plus rapide car adapté à ce genre de taches).

Pour ceux que le sujet interesse, il y aussi : TreeSize.

Ils ont aussi un utilitaire de recherche de fichier très rapide ultra search

https://www.jam-software.com/treesize/fix_file_path_too_long_error.shtml

Comment corriger l'erreur « Chemin de fichier trop long »

« Chemin de fichier trop long » est une erreur fréquemment rencontrée, en particulier sur le stockage d'entreprise. De nombreuses applications, le .Net Framework et Windows lui-même rencontrent des problèmes majeurs avec les chemins comportant 255 caractères ou plus . Par conséquent, les fichiers situés dans des chemins longs ne peuvent généralement pas être utilisés.

Pour résoudre ce problème, vous devez raccourcir quelques noms de dossiers. Vous pouvez le faire très facilement avec TreeSize.

image
Rechercher des sujets similaires à "lister fichiers disque dur chemin"