sistema - ¿Es seguro asumir que la ruta C: / WINDOWS / system32 siempre existe?
windows sistema operativo (6)
Definitivamente no puede suponer que: Windows podría instalarse en una letra de unidad diferente o en un directorio diferente. En un trabajo anterior, PC Windows se instaló en D: / WINNT, por ejemplo.
La respuesta breve es usar la llamada API GetSystemDirectory (), que devolverá la ruta que está buscando.
La respuesta más larga es preguntar: ¿realmente necesita saber esto? Si lo está usando para copiar archivos en el directorio de Windows, le sugiero que pregunte si realmente quiere hacer esto. No se recomienda copiar en el directorio de Windows, ya que puede estropear otras aplicaciones muy fácilmente. Si está utilizando la ruta para encontrar archivos DLL, ¿por qué no simplemente confía en el sistema operativo para encontrar el adecuado sin dar una ruta? Si está buscando fragmentos de los archivos del sistema operativo, considere: ¿eso va a funcionar en el futuro? En general, es mejor no buscar explícitamente en el directorio de Windows si desea que su programa funcione en futuras versiones de Windows.
En SO de Windows 2000 o posterior (cualquier idioma) ¿puedo suponer que esta ruta siempre existirá? Por ejemplo, sé que en win xp en algunos idiomas, el directorio "Archivos de programa" tiene un nombre diferente. Entonces, ¿es cierto para la carpeta System32?
Gracias. Ohad.
No, no puedes asumir eso.
Windows se puede instalar en una ruta diferente. Una solución es buscarlo llamando a GetSystemDirectory (implementado como parte de la API de Windows).
Puede ser más seguro usar la variable de entorno "windir" y luego agregar "System32" al final de esa ruta. A veces, las ventanas pueden estar en una carpeta diferente o en una unidad diferente, por lo que "windir" te dirá dónde está.
Por lo que sé, la carpeta system32 siempre debe existir debajo de la carpeta windows.
Windows se puede instalar en un disco duro diferente y / o en una carpeta diferente. Utilice las variables de entorno% windir% o% systemroot% para acceder a la carpeta windows y anexar system32. O use la variable% path%, generalmente es la primera entrada y el método preferido para buscar archivos como dlls AFAIK. Según los comentarios: no confíe demasiado en que el dir system32 sea el primer elemento. Sin embargo, creo que es seguro suponer que está en% path% en alguna parte.
Usaría GetWindowsDirectory Win32 API para obtener el directorio actual de Windows, anexar System32 y luego verificar si existe.
Solo un FYI, pero en un entorno de Terminal Server (es decir, Citrix), GetWindowsDirectory () puede devolver una ruta única para un usuario remoto.
A medida que más y más empresas utilizan escritorios virtualizados, los desarrolladores deben tener esto en cuenta.