6 votes

Générer des URI "file://" dans l'Explorateur Windows

Je recherche un moyen d'obtenir un URI de fichier:/ correct depuis l'explorateur Windows. Fondamentalement, j'aimerais avoir une entrée de menu contextuel qui dise "copier l'URI du fichier dans le presse-papiers". Est-ce que quelque chose comme ça existe?

Ce n'est pas un doublon de "Copier le nom de fichier dans le presse-papiers" car je veux un URI de fichier et non le nom du chemin d'accès.

Pour clarifier: je cherche à obtenir "file:///c:/Temp/foo%20bar.txt" et non pas "C:\Temp\foo bar.txt" ni "foo bar.txt" ni "C:\Temp".

0 votes

Merci! Une des réponses mentionne FileMenu Tools qui a cette fonctionnalité mais qui conserve les espaces dans la chaîne copiée, ce qui en fait une URI invalide. :-(

0 votes

Il ne s'agit pas d'un doublon de « Copier le nom de fichier dans le presse-papiers » car je veux un URI de fichier et non le nom du chemin.

0 votes

Pour clarifier : Je cherche à obtenir "file:///c:/Temp/foo%20bar.txt" et non pas "C:\Temp\foo bar.txt" ou "foo bar.txt" ou "C:\Temp".

3voto

w32sh Points 10300

Venez de créer ce VBS.

If WScript.arguments.count > 0 Then
    Dim WshShell: Set WshShell = WScript.CreateObject("Wscript.Shell")
    strPath = "file:///" & Wscript.Arguments(0)
    strPath = Replace(strPath,"\","/")
    strPath = Replace(strPath," ","%20")
    sCmd = "%comspec% /c

``Enregistrez-le en tant que fichier .VBS. Faites glisser et déposez un fichier sur le VBScript et il copie l'URI du fichier dans le presse-papiers. Vous pouvez l'implémenter dans le menu clic droit si nécessaire.

Il copie le nom du fichier en mémoire, inverse les barres obliques, remplace les espaces par "%20", et ajoute "file:///" au début. C'est un script basique qui prend en charge uniquement un nom de fichier / argument. Vous pouvez le modifier selon vos besoins.

Ajouter le script à votre dossier Envoyer vers

Vous pouvez placer un raccourci du script dans votre dossier Envoyer vers. Appuyez sur WinKey + R, tapez shell:sendto et appuyez sur ENTER. Créez un raccourci vers le script dans le dossier Envoyer vers et nommez-le en conséquence. (par exemple, Copier l'URI du fichier)

Maintenant, faites un clic droit sur un fichier, cliquez sur Envoyer vers et cliquez sur Copier l'URI du fichier. Le chemin du fichier sera copié dans le presse-papiers, au format URI comme ci-dessous.

file:///C:/Users/jack/desktop/list-of-items.txt``

0voto

Brian Webster Points 7516

Le script VBS est agréable, mais il n'y a aucun moyen de gérer tous les cas particuliers gérés par des outils comme UrlCreateFromPath ou System.URI.

Heureusement, les deux sont faciles à utiliser, voici ce que j'ai fait:

using System;
using System.Windows.Forms;

namespace AbsoluteUriGenerator
{
    class Program
    {
        [STAThread]
        static int Main(string[] args)
        {
            if (args.Length != 1)
            {
                var executableName = typeof(Program).Assembly.GetName().Name + ".exe";
                Console.WriteLine("Utilisation : {0} cheminAConvertir", executableName);
                Console.WriteLine("Exemple : {0} \"C:\\foo\"", executableName);
                return 1;
            }

            var path = args[0];
            Console.WriteLine("Résolution du fichier:// URI du chemin : {0}", path);
            var fileUri = new Uri(path).AbsoluteUri;

            Console.WriteLine("Réglage du presse-papiers sur le fichier:// URI résolu : {0}", fileUri);
            Clipboard.SetText(fileUri);
            return 0;
        }
    }
}

Vous pouvez le copier dans votre dossier shell:sendto, voici une version compilée : https://1drv.ms/u/s!Aj2cMNVj29ben4B_mh9Md5R4ghBlMQ

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X