“Impossible de trouver une partie du chemin” message d'erreur
Je suis à la programmation en c# et que vous souhaitez copier un dossier avec des sous-dossiers à partir d'un flash disque de démarrage.
Voici mon code:
private void copyBat()
{
try
{
string source_dir = "E:\\Debug\\VipBat";
string destination_dir = "C:\\Users\\pc\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
if (!System.IO.Directory.Exists(destination_dir))
{
System.IO.Directory.CreateDirectory(destination_dir);
}
//Create subdirectory structure in destination
foreach (string dir in Directory.GetDirectories(source_dir, "*", System.IO.SearchOption.AllDirectories))
{
Directory.CreateDirectory(destination_dir + dir.Substring(source_dir.Length));
}
foreach (string file_name in Directory.GetFiles(source_dir, "*.*", System.IO.SearchOption.AllDirectories))
{
File.Copy(file_name, destination_dir + file_name.Substring(source_dir.Length), true);
}
}
catch (Exception e)
{
MessageBox.Show(e.Message, "HATA", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
J'ai une erreur:
Impossible de trouver une partie du chemin E:\Debug\VipBat
Pourquoi le
Vous utilisez verbatim les littéraux de chaîne
est droit. Si vous utilisez mot à mot littéral de chaîne, votre chaîne sera exactement comme ce que vous écrivez. Dans ce cas, il sera exactement E:\\Debug\\VipBat\\ qui n'est pas un chemin d'accès valide.
Ne devriez-vous pas remplir
Bienvenue à Débordement de Pile! Veuillez ne pas inclure de l'information sur un langage utilisé dans une question de propriété, à moins que ça n'aurait pas de sens sans elle. Tags servir à cette fin.
{0}
?Vous utilisez verbatim les littéraux de chaîne
@""
dans ce cas, vous n'avez pas besoin de s'échapper `\` - il suffit d'utiliser une seule barre oblique.est droit. Si vous utilisez mot à mot littéral de chaîne, votre chaîne sera exactement comme ce que vous écrivez. Dans ce cas, il sera exactement E:\\Debug\\VipBat\\ qui n'est pas un chemin d'accès valide.
Ne devriez-vous pas remplir
{0}
présents dans E:\\Debug\\VipBat\\{0}
? Une autre chose que vous n'avez pas besoin de deux barres obliques dans le chemin quand vous préfixe de la chaîne de @
.Bienvenue à Débordement de Pile! Veuillez ne pas inclure de l'information sur un langage utilisé dans une question de propriété, à moins que ça n'aurait pas de sens sans elle. Tags servir à cette fin.
OriginalL'auteur user3313131 | 2014-02-15
Vous devez vous connecter pour publier un commentaire.
L'erreur est auto-explicatif. Le chemin que vous tentez d'accéder n'est pas présent.
Je suis sûr que ce n'est pas le bon chemin.
Debug
dossier directement dansE:
lecteur est mauvais pour moi. Je suppose qu'il doit y avoir le nom du projet dossier dossier présent.Deuxième chose, ce qui est
{0}
dans votre chaîne. Je suis sûr que c'est un argument espace réservé car le nom de dossier ne contient{0}
un tel nom. Si vous avez besoin d'utiliserString.Format()
pour remplacer la valeur réelle.Mais d'abord vérifier le chemin de l'existence que vous tentez d'accéder.
OriginalL'auteur Sachin
Il ya quelque chose de mal. Vous avez écrit:
et l'erreur a été
Ce n'est pas le même répertoire.
Dans votre code, il y a un problème, vous devez utiliser:
ou
OriginalL'auteur Akrem
Est le lecteur E d'un lecteur mappé? Ensuite, il peut être créé par un autre compte autre que le compte d'utilisateur. Cela peut être la cause de l'erreur.
OriginalL'auteur ThorstenC
Probablement non, mais pensez à utiliser
Path.Combine
au lieu dedestination_dir + dir.Substring(...)
. À partir de l'apparence, votre .Substring() va laisser le jeu au début, mais les classes d'aide comme le Chemin sont là pour une raison.OriginalL'auteur Drew Delano
J'ai eu la même erreur, bien que dans mon cas, le problème était avec la mise en forme du chemin d'accès de DESTINATION. Les commentaires ci-dessus sont corrects à l'égard de débogage, le chemin de chaîne de formatage, mais il semble y avoir un bug dans le Fichier.L'exception de copie de déclaration où il jette en arrière le chemin de la SOURCE au lieu de le chemin de DESTINATION. Alors n'oubliez pas de regarder ici.
-TC
OriginalL'auteur TJC
Fichier.Copier(nom_fichier, destination_dir + nom_fichier.Substring(source_dir.La longueur), true);
Cette ligne ont l'erreur, car ce que le code attendu est le nom du répertoire + nom de fichier, pas de nom de fichier.
C'est la bonne
Fichier.Copier(source_dir + nom_fichier, destination_dir + nom_fichier.Substring(source_dir.La longueur), true);
OriginalL'auteur Ryan Chong
J'ai résolu un problème similaire en redémarrant simplement Visual Studio avec les droits admin.
Le problème était parce qu'il ne pouvait pas ouvrir un projet lié à Sharepoint sans élevés accès.
OriginalL'auteur K48
Il peut être l'une des deux causes de cette erreur:
OriginalL'auteur techExplorer