2011-01-10 23 views
0

Ich muss überprüfen, ob der Pfad, den ich in Textfeld angegeben habe, korrekt ist oder nicht.Für Textbox können wir Dateipfad Validierung haben?

bedeutet, dass eine Validierung erforderlich ist, um darauf hinzuweisen, dass wir feststellen, dass das, was Sie in das Textfeld eingegeben haben, korrekt ist oder nicht.

Pfadüberprüfung in Textfeld können wir ...............

+0

Sie tun syntaktisch gültig, dh eine Form zu haben, die eine Datei sein könnte? Oder meinst du aus der Existenz gültig, das heißt, weil der Pfad in der Textbox tatsächlich existiert? – eh9

Antwort

0
bool r = ValidFilePath(txtPaySlipPDFTemplatePath.Text); 
private bool ValidFilePath(string path) 
{ 
    String pattern = @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$";  
    Regex reg = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);  
    return reg.IsMatch(path); 
} 
+0

Dies funktioniert nur mit Windows-Systemen. – basti

+0

Es überprüft auch "C: \ Benutzer \\\", was falsch ist. – digitguy

0

Was meinst du mit „einem richtigen Weg“? Auf jeden Fall können Sie eine CustomValidator Kontrolle in Ihrer Seite hinzufügen, in dessen Code hinter einige Code wie diesen:

pathValidator.ServerValidate += (sender, args) => 
    { 
     args.IsValid = Directory.Exists(myTextBox.Text); 
    }; 
0

Gültige Pfade ändern sich im Dateisystem ab, die Sie verwenden. So etwas kann testen, ob der Pfad

public bool IsValidPath(String path, bool requiresFullPath = true) 
{ 
    try 
    { 
     if(requiresFullPath && !path.Contains(":")) 
      return false; 

     Directory.GetLastAccessTime(path); 
     return true; 
    } catch (ArgumentException) { return false; } 
} 
-1

Ihren regulären Ausdruck nicht funktioniert im Falle von zwei Schrägstriche im Pfad wie in der nächsten Probe gilt:

string Path = "\\\192.168.0.1\folder\folder2\folder3\\\file.pdf"; 
+0

Diese Antwort sollte ein Kommentar zu der Antwort sein, für die sie relevant ist, keine separate Antwort. – eh9

Verwandte Themen