De nombreux exemples C# montrent comment manipuler des fichiers et des répertoires, mais ils utilisent inévitablement des chemins de dossier qui ne contiennent aucun espace. Dans le monde réel, j'ai besoin de pouvoir traiter des fichiers dans des dossiers avec des noms contenant des espaces. J'ai écrit le code ci-dessous qui montre comment j'ai résolu le problème. Cependant, il ne semble pas très élégant et je me demande si quelqu'un a un meilleur moyen.Traitement de fichiers avec C# dans des dossiers dont les noms contiennent des espaces
class Program
{
static void Main(string[] args)
{
var dirPath = @args[0] + "\\";
string[] myFiles = Directory.GetFiles(dirPath, "*txt");
foreach (var oldFile in myFiles)
{
string newFile = dirPath + "New " + Path.GetFileName(oldFile);
File.Move(oldFile, newFile);
}
Console.ReadKey();
}
}
Cordialement, Nigel Ainscoe
Utilisez Path.Combine() au lieu de traiter antislashs vous ... –
Suis-je manque quelque chose? Toutes les classes 'System.IO' gèrent des fichiers et des répertoires avec des espaces. Techniquement, même DOS l'a fait, en termes de système de fichiers, c'est juste que certains outils de ligne de commande n'ont pas correctement analysé les espaces. – Aaronaught
Path.Combine est vital - vous obtiendrez une erreur si vous essayez de faire les barres obliques vous-même et ne réaliserez pas jusqu'à ce que vous essayez un fichier avec des espaces – stuartdotnet