Croix-plate-forme de gestion des noms de fichiers .NET de Base
Comment gérer nom de fichier dans System.IO
classes dans une croix-plate-forme de manière à le faire fonctionner sur Windows et Linux?
Par exemple, j'ai écrit ce code qui fonctionne parfaitement sur Windows, toutefois, il ne faut pas créer un fichier sur Linux Ubuntu:
var tempFilename = $@"..\Data\uploads\{filename}";
using (FileStream fs = System.IO.File.Create(tempFilename))
{
file.CopyTo(fs);
fs.Flush();
}
OriginalL'auteur Rem | 2016-07-03
Vous devez vous connecter pour publier un commentaire.
Windows à l'aide de la barre Oblique inverse. Linux à l'aide de la barre oblique. Chemin d'accès.Combiner ensemble le symbole :
Chemin d'accès.Méthode de combinaison - MSDN
Avez-vous besoin de les convertir? Windows prend généralement en charge les barres obliques.
Comme svick dit, barres peuvent être utilisés comme séparateurs de chemin sur Windows (uniquement command.com et cmd.exe interpréter des barres obliques en tant que quelque chose d'autre) @Rem
Conversion automatique ? Comment au sujet de la détection de l'OS, si Linux puis de la Chaîne.Replace("\","/") et si windows puis de la Chaîne.Replace("/","\")
Peut détecter endians, ou qch d'autre))) je voudrais écrire en C++ si j'avais besoin de réagir à ce genre de choses en C#!
OriginalL'auteur
Vous pouvez également utiliser le Chemin.DirectorySeparatorChar comme ci-dessous:
Référence: MSDN
OriginalL'auteur
Vous pouvez simplement utiliser des barres obliques. Les chemins relatifs fonctionnent de la même manière, et les chemins d'accès absolus ne peut être que relative à la racine du disque dur principal (chemins absolus commençant par "c:" ne sont pas portables)
OriginalL'auteur
Le post original est de plus d'un an mais j'ai encore rencontré ce problème.
Il me semble que l'utilisation de points dans les chemins relatifs est aussi un problème.
Un chemin comme
bien travaillé sur windows mais pas sur unix.
Lors de la modification de la dot notation pour le répertoire courant:
J'ai eu plus de succès.
OriginalL'auteur