Vérifier la transmission Existe(string path)
Comment vérifier le disque existe dans le système de la chaîne de WPF. J'ai essayé les
Ex: FileLocation.Text = "K:\TestDrive\XXX";
if (!Directory.Exists(FileLocation.Text))
{
MessageBox.Show("Invalid Directory", "Error", MessageBoxButton.OK);
return;
}
De contrôle, il est chemin d'accès complet mais it should check "K:\" from the text
. Pourriez-vous svp me guider
EDIT 1: "K:\TestDrive\XXX" n'est pas statique
EDIT 2: j'ai essayé de le ci-dessous, dans mon système, je vais avoir 3 drives C, D and E
mais il en montrant faux.
Environment.SystemDirectory.Contains("D").ToString(); = "False"
Assurez-vous que vos échantillons ont raisonnables de code C#. I. e.
Merci pour votre commentaire, mais je viens de donner pour exemple
Que diriez -
Excellent fonctionne très bien, mais si le chemin n'a qu' \\\\, il échoue et il devrait afficher une alerte si le chemin a '/'
"K:\Test..."
est un peu suspect constante de chaîne: doit être @"K:\Test..."
ou "K:\\Test..."
, la vérification de la true
/false
ne nécessite pas d'appel pour ToString
et certainement pas sensible à la casse comparaison avec d'étranges ; =
de l'opérateur.Merci pour votre commentaire, mais je viens de donner pour exemple
Que diriez -
Directory.Exists(Path.GetPathRoot(pathGoesHere))
?Excellent fonctionne très bien, mais si le chemin n'a qu' \\\\, il échoue et il devrait afficher une alerte si le chemin a '/'
OriginalL'auteur Ponmalar | 2013-06-27
Vous devez vous connecter pour publier un commentaire.
Bien sûr, d'autres vérifications (le chemin d'accès racine au moins trois caractères, est le deuxième un côlon) devrait être ajouté, mais cela est laissé comme exercice au lecteur.
Génial, merci. J'ai mis à jour ma réponse.
Excellent fonctionne très bien, mais si le chemin n'a qu' \\\\, il échoue et il devrait afficher une alerte si le chemin a '/'
n'est pas un lecteur, et il doit fail. Notez que GetPathRoot fonctionne pour les chemins d'accès UNC!
Parfait. Je cherchais une solution pour vérifier si un disque n'est pas formaté (inaccessibles, comme le chiffrement TrueCrypt/VeraCrypt une partition pour windows). De ce fait le travail.
OriginalL'auteur Heinzi
vous pouvez faire suivre
Quelle est la question? Vous ne pouvez pas remplacer "@K:\" par une autre lettre de lecteur?
OriginalL'auteur DreamChild
vous pouvez l'essayer....
veuillez voir edit 2
Ce qui est évidemment faux - lecteur de comparaison devrait être sensible à la casse (d'où doit utiliser
IndexOf
comparaison avec le type au lieu deContains
) et d'améliorer la case à cocher pour "lettre de lecteur" + ":" pour éviter les cas où la lettre qui est arrivé à être une partie du chemin.OriginalL'auteur Shujaat Abdi
C'est Parce que l'Environnement.SystemDirectory.XXXXX est tout au sujet de l'endroit où le système/windows est installé ...... pas pour l'ensemble de la HD.
vous pouvez utiliser pour cela.....
il montrera tous les lecteurs, y compris les périphériques Usb qui sont connectés.....
OriginalL'auteur Shujaat Abdi
Vous pouvez vérifier les disques en C# comme ce
OriginalL'auteur Rajeev Kumar
Vous pouvez utiliser
Environment.GetLogicalDrives()
pour obtenir unestring[]
des lecteurs logiques dans votre système.OriginalL'auteur Pedro
Je suppose que cela dépend exactement ce que vous espérez accomplir. Si vous êtes en train de parcourir les lecteurs et de test pour s'assurer que chaque lecteur existe, alors
Environment.GetLogicalDrives()
ouDriveInfo.GetDrives()
est appropriée, car elle permet de faire une itération sur les disques.Cependant, si tout ce qui vous intéresse est de tester pour voir si UN disque existe un chemin particulier, l'obtention de l'ensemble de la liste des lecteurs pour vérifier si il est contenu est un peu en arrière. Vous pouvez utiliser
Directory.Exists()
qu'il vérifie juste si ce chemin existe.OriginalL'auteur Komron Nouri