Écrire un fichier texte dans un sous-dossier
Je suis en train d'écrire un fichier texte à: C:\Test folder\output\
, mais sans mettre C:\
dans.
c'est à dire
C'est ce que j'ai en ce moment, qui fonctionne actuellement, mais a la C:\
au début.
StreamWriter sw = new StreamWriter(@"C:\Test folder\output\test.txt");
J'ai vraiment envie d'écrire le fichier dans le dossier de sortie, mais sans avoir à avoir C:\
à l'avant.
J'ai essayé ce qui suit, mais mon programme se bloque (ne pas écrire le fichier de sortie):
(@"\\Test folder\output\test.txt");
(@".\Test folder\output\test.txt");
("//Test folder//output//test.txt");
("./Test folder//output//test.txt");
Est-il de toute façon, je pourrais faire cela?
Grâce.
- Voulez-vous ce sous-dossier à la racine du lecteur en cours ou vous êtes à la recherche de quelque chose d'autre? (c'est à dire créer un sous-dossier dans le dossier applications).
- Pourquoi voulez-vous supprimer le C:\?
- J'ai déjà le sous-dossier créé, je veux juste le fichier texte écrit à ce dossier maintenant.
- quel est le problème avec le "c:" ? (pourquoi voudriez-vous de ne pas inclure ce?) - première chose a été répondu par habib (\\ = partageréseau), la deuxième ne fonctionne que s'il est dossier de Test et de sortie dans votre répertoire de travail, 3 et 4 sont juste *nix-les variantes 1 et 2...
- parce que j'ai besoin d'envoyer mon programme à d'autres personnes (au sein de mon entreprise), de sorte qu'ils puissent l'utiliser dans le dossier que j'ai dans.
- Et si vous avez 3 disques durs locaux la façon dont l'application sait où vous voulez écrire? Je ne peux pas comprendre comment vous exclure la lettre de Lecteur dans votre logique, désolé
- L'application doit savoir où l'application est elle-même
- Essayez ~\dossier\ etc
- Merci, ça ne marche toujours pas. Je vais avoir à penser comment je suis aborder cette, et re-approche à nouveau d'une manière différente.
- qu'entendez-vous par se bloque? il faut une exception s'est produite.. si donc, après l'erreur ici.
Vous devez vous connecter pour publier un commentaire.
Je comprends que vous souhaitez écrire des données dans un dossier spécifié. La première méthode consiste à spécifier le dossier dans le code ou dans la configuration de l'.
Si vous avez besoin d'écrire pour de lecteur ou le lecteur actuel, vous pouvez effectuer les opérations suivantes
Si le répertoire doit être relatif à l'application active directory, puis l'utilisateur
AppDomain.CurrentDomain.BaseDirectory
pour obtenir le répertoire courant et l'utilisation../
combinaison pour naviguer vers le dossier requis.Vous pouvez utiliser
System.IO.Path.GetDirectoryName
pour obtenir le répertoire de votre application en cours d'exécution puis vous pouvez ajouter à ce le reste du chemin..Je ne comprends pas clairement ce que vous voulez à partir de cette question , j'espère que ça l'obtenir..
Une technique courante est de créer le répertoire par rapport à votre exe du répertoire d'exécution, par exemple, un sous-répertoire, comme ceci:
Cela signifie que dès l'exe est installé, il va créer une "Sortie" du sous-répertoire, qu'il peut ensuite écrire des fichiers.
Il a aussi l'avantage de garder l'exe et ses fichiers de sortie ensemble dans un seul endroit, et non pas dispersés un peu partout.
Merci pour votre aide les gars.
Un de mes collègues ont contribué et aidé aussi, mais @Kami a beaucoup aidé aussi.
Il est maintenant de travailler quand j'ai:
Comme il le dit: "La
CurrentDirectory
est l'endroit où le programme est exécuté.