2011-03-12 7 views

Répondre

1

Je suppose que vous demandez comment lire un fichier distant (ce qui se résume à cela). L'option la plus simple si elle est disponible est probablement de simplement lire le fichier en utilisant un chemin de fichier UNC distant, par ex. \\SomeMachine\SomeShare\TheFile.ini. Si vous ne pouvez pas faire cela, vous devez trouver un moyen de transférer le fichier sur la machine locale, hors bande ou à la demande en utilisant des canaux nommés, des sockets TCP, ou quelque chose de similaire. Pourquoi utilisez-vous des fichiers INI de toute façon? Ils étaient essentiellement obsolètes après l'ère Windows 16 bits. Je recommande fortement une approche différente (par exemple le registre, un fichier de configuration XML, ...).

+0

GetPrivateProfile chaîne analyse automatiquement INI et récupère la chaîne si je passe un nom de paramètre. Il prend juste le nom de fichier et pas le chemin, à la place il recherche le répertoire de Windows pour ce fichier. Si cela prend un chemin complet, j'aurais donné un chemin UNC distant. –

+1

Il s'est avéré que le registre n'était pas tout à fait la solution miracle que tout le monde pensait que ce serait. Applications déversant des paramètres de configuration strictement privés dans une base de données publique géante n'est pas nécessairement la meilleure idée jamais conçue. Certes, un fichier XML peut être une meilleure solution que les fichiers INI, mais ne rejetez pas catégoriquement l'utilisation des INI simplement parce qu'ils vous semblent "vieux". –

+1

@Beetles: Oui, il * peut * le faire. Mais vous pouvez également spécifier un nom de chemin dans le paramètre 'lpFileName'. [Consultez la documentation] (http://msdn.microsoft.com/fr-fr/library/ms724353.aspx) pour plus de détails. –

2

Vous ne devriez pas pouvoir modifier les fichiers INI stockés sur des machines distantes. Quel que soit votre problème, ce n'est pas la solution.

0

J'ai seulement découvert récemment que vous ne pouvez pas accéder aux fichiers INI sur les chemins UNC.

Ma solution était de mapper une lettre de lecteur à cet emplacement et cela a fonctionné.

Ainsi, au lieu de \ myserver \ myinipath \ myinifile.ini

Je cartographié X à cet endroit ...........

net use x: \ myserver \ myinipath

dans le cas où vous devez vous connecter à ce chemin/serveur UNC puis

net use x: \ myserver \ myinipath/utilisateur: Mot de passe loginname

I maintenant u se x: \ myinifile.ini

Questions connexes