2015-06-28 18 views
5

Mam dwie ścieżki:wykryć, czy dwie ścieżki są takie same

\\10.11.11.130\FileServer\Folder2\Folder3\ 
\\10.11.11.130\d$\Main\FileServer\Folder2\Folder3\ 

I chcę, aby wykryć, czy obie ścieżki są takie same.

Chcę tego, ponieważ próbuję przenieść jeden plik do innego katalogu. Tak więc dla powyższych ścieżek generowany jest wyjątek.

Wiem, że mogę spróbować i złapać, ale jest inny sposób?

myślałem o usunięcie d$\Main z drugiej ścieżki, a następnie porównać, ale to nie zawsze jest prawda ..

Każda pomoc mile widziana!

+0

umieść plik w katalogu i sprawdź jego istnienie? – Benj

+3

sprawdza, czy plik istnieje w folderze, a nie czy ścieżka źródłowa i docelowa są identyczne. – Marco

+1

Prawdopodobnie powiązane: http://stackoverflow.com/questions/410705/best-way-to-determine-if-two-path-reference -to-same-file-in-c-sharp – TyCobb

Odpowiedz

1

Można mieć metody takie jak to, by sprawdzić, czy równe:

public static bool PathsSame(string pth1, string pth2) 
{ 

    string fName = System.IO.Path.GetRandomFileName(); 
    string fPath = System.IO.Path.Combine(pth1, fName); 
    System.IO.File.Create(fPath); 
    string nPath = System.IO.Path.Combine(pth2, fName); 
    bool same = File.Exists(nPath); 
    System.IO.File.Delete(fPath); 
    return same; 
} 

ten symuluje zachowanie sprawdzenie czy ścieżki są takie same, można utworzyć plik z unikalną nazwą i sprawdzić, czy istnieje w innym katalogu . Następnie możesz usunąć utworzony plik, ponieważ nie jest już potrzebny. To nie jest najlepsze rozwiązanie, ale może być wystarczające.

To również nie obsługuje błędów, które mogą wystąpić. W przypadku obsługi błędów spójrz na to: https://msdn.microsoft.com/en-us/library/vstudio/as2f1fez(v=vs.110).aspx

Powiązane problemy