2015-06-28 14 views
5

Ho due percorsi:Rilevare se due percorsi sono gli stessi

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

E voglio rilevare se i percorsi entrambi sono gli stessi.

Lo voglio perché sto provando a spostare un file in un'altra directory. Quindi per i percorsi sopra, viene generata un'eccezione.

So che posso usare try e catch, ma c'è un altro modo?

ho pensato sulla rimozione d$\Main dal secondo percorso e quindi confrontare, ma non è sempre vero ..

Qualsiasi aiuto apprezzato!

+0

inserire un file nella directory e verificare la sua esistenza? – Benj

+3

verifica se il file esiste in una cartella, non se il percorso di origine e destinazione sono identici – Marco

+1

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

risposta

1

Si potrebbe avere un metodo come questo per verificare se uguale:

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; 
} 

Questo simula il comportamento di controllare se i percorsi sono gli stessi è possibile creare un file con nome univoco e verificare se esiste in altre directory . Quindi è possibile eliminare il file creato perché non è più necessario. Questa non è la migliore soluzione, tuttavia potrebbe essere sufficiente.

Anche questo non gestisce gli errori che possono verificarsi. Per la gestione degli errori guardare questo: https://msdn.microsoft.com/en-us/library/vstudio/as2f1fez(v=vs.110).aspx

Problemi correlati