2009-10-01 11 views
0

Dans mon application de fenêtre C#. J'ai 2 dossiers dans le même chemin où exe existe. L'un est le dossier d'entrée où nous mettons tous les fichiers pour le processus et le second est le dossier traité où après le traitement des fichiers sont déplacés. Supposons que nous ayons le nom de fichier 1.txt dans le dossier d'entrée après le traitement, le fichier est coupé de l'entrée et déplacé dans le dossier traité. Immédiatement quand j'ai placé le même fichier de nom 1.txt au dossier d'entrée puis après le traitement il sera de nouveau déplacé dans le dossier traité où déjà un autre fichier existe du même nom 1.txt. Je trouve que l'ancien fichier 1.txt a automatiquement été déplacé du dossier traité et se trouve dans le chemin où l'exe est placé. et le nouveau 1.txt viendra dans le dossier traité.Problème de gestion de fichiers C#

Je voudrais savoir si dotnet se comporte de la même manière ou j'ai fait quelque chose de mal?

+3

Pouvez-vous poster le code? – rahul

+0

@adamantium en avons-nous besoin? –

+0

Il s'agit d'une erreur de programmation, veuillez vérifier votre code lorsque vous enregistrez/déplacez le fichier. Utilisez-vous - System.Environment.CurrentDirectory + "/ FolderName /"? –

Répondre

2

Il ne fait pas partie de .NET (ou de Win32 sous-jacent) de déplacer des fichiers lorsqu'ils sont remplacés. Alors oui, c'est quelque chose que vous faites.

-1

Voir> Explorateur de solutions> Clic droit sur 1.txt> Propriétés> Copier dans le répertoire de sortie

REMARQUE: Votre problème n'a rien à voir avec .NET.

+0

Pourquoi le downvote ??? –

0

Probablement préférable de spécifier explicitement le chemin.

Méfiez-vous également d'utiliser System.Environment.CurrentDirectory, car il s'agit du répertoire courant dans tout le système. Un autre programme (comme l'explorateur Windows ou la boîte de dialogue d'ouverture/de sauvegarde d'un autre programme) peut changer cela.

S'il s'agit d'une application WinForms, vous pouvez utiliser Application.StartupPath. Si non, je pense que vous pouvez utiliser System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().Location)