2011-04-22 23 views
5

Mi intención es que mi aplicación se ejecute en Windows y Linux.
La aplicación utilizará una cierta estructura de directorios, p.¿Cómo debo manejar las rutas de Windows/Linux en C#

appdir/ 
     /images 
     /sounds 

lo que sería una buena manera de manejar las diferencias de archivo (path) de nombres diferencias entre Windows y Linux? No quiero codificar variables para cada plataforma. p.ej. seudo código

if #Win32 
    string pathVar = ':c\somepath\somefile.ext'; 
else 
    string pathVar = '/somepath/somefile.ext'; 

Respuesta

13

Puede utilizar la constante Path.DirectorySeparatorCharacter, que será bien \ o /.

O bien, cree rutas utilizando Path.Combine, que insertará automáticamente el separador correcto.

+0

http://www.mono-project.com/Guidelines:Application_Portability#Path_Separators – Eminem

+0

¿Quiere decir ['Path.DirectorySeparatorChar'] (https://msdn.microsoft.com/en-us/library/system. io.path.directoryseparatorchar% 28v = vs.110% 29.aspx)? –

0

Si está utilizando Mono. En la clase System.IO.Path, encontrará:

Path.AltDirectorySeparatorChar 
Path.DirectorySeparatorChar 

Espero que esto ayude!

Cuestiones relacionadas