using System.Diagnostics;
public static void Main()
string filePath = @"c:\test.txt.txt";
string fileNamer = @"cOQMPAStEAMNLDTPDTvqCsveEXYlYvSsSUKefUrkGAcZiebQmJvEaFbqNqgIbwcSGfAOBwiENtKdIoLjPvXuwqsuzzZiTIqNPQLEJCJCMvkLwfraOrQPxLuqPuRKydwCGIgjFWgKXSJvchOWNEwzHgarWhPRluXFblWqMXqBWUlCBHHIGUSRypmywoUOIGRUtusYOawoUtYFiYBEcQBSkFzwjXguPmZIFkIHXyoFiiuFAtVaOkyWhdGngYejxrYuDVBBeeilUlyQDIKkXYRxEjxYlvIyMMTPyKQzPzFFCcoYzNYRSBnZXMhAILkhNDfhHHRDhjWaveqrckVQjScRkgJsClNESxUxIFDhlNXoqAFdjJDrqFmODgYsvAHvJnxCAGlrRIPCycPiMwiNrUiVZhGjlOZLNqXFexnVVTIIGdqHMMpIlmDbnYtzwxTcAgzFunjpuKUTaYghWUpYykkXJPDxMBNLeJrigbzjAuDesGbGoTDtoulTVvOlfiMYVATGHcEKdSslVfuROcUhmMxSZtEjQmPeaxdrzWTHCJpNOutInakwdVqqiGzqYRBvzkCtHMlRVnDoRfLpliSdgEQYbJVpoMwPKdZjSItbalLNynVjtFAIxAEfdPKUKaOUuuhhbFqnjLImGgHlZLDekPPXEQuEQdkeJftwxBsxlStkMIwFSgWqHBzrjsGmDoygffnFITldFAfGINErmNmdGKXSOrNlMtKXXOLxIqZdoCwqJolaRZMBCCHeOsMqsyehmiGTbHnKopZBsKIXyYsaFrFIvRPGNaXaBhjRDdOQFyRLEARTIvKLKsgeEARLziuoeordhSWGUMzGozXDoEcMdiaEGUTIcZIzdWPAyClZPBgZNXAlFktLqzEhATFMytEcRjOYIRMndJxcILYKjDiJHVbZlHnSgfYWsFpJyxJYiVhuVFNeDVCYWVeKYfsdDgZYzAHhncZiPQlybouvgKcncinzCKqcXdUPQKvppGVtwHoDlBrCtBHbQtzlHnJIKxTQVIfSQGhkCRSxrXDBwNbkbHVxPJwqgrXRonGkYuOwPKwyGTGSaISkrFmBSmDPFImCYIxvsAZvtLlGfsyJSWUngAzEVsttxslBgwVrFfnvWlvKFHPDlZsdizpHkTufZQMQqUxtDuLtlHjSdxCVSHnmZiWVheUfZJIsYbXLOuSIgYPuYdJvJmQNpnZveYkJrrzHzejvyqyjYPjWrtnzSzBuaBwLIAQCjjzYymqupurQytLdnMdnonbqBiQSiHbonLqTmSuNSdmEuGmgzJFnzLKXJrXCDjWioiKTLLHvydqvCljZAOsoRbHoXEblYMoEAYEXyvHmGDKJQxaBaiOilRvDGrODbQIuEVNvtbxQVPDRkEIuagjjkffnwKPVAOUEYCDXwuZPMIfkvkbFJuauymqoDevngphqtGfUhgIJVzOkjycQMzfLiADAqLeIYRVyHwECqUOGUlxgOfjvhMjqGyhVGzSBcBSrpFslPlWJFScMFNQFaArRcUrBAvIRiAZxnMZQzsYcZMIbRUamPkewwKWxdZEYBnnBUInairMMbRScHwasmGopQUuemjEgiuNKqgzygcQDZBTtyFriynnISONYCUTvlMzjhewcqcrQxmiDUAwItNVfUmdaVXVtkjMxIPQqjViEFPqnqgoLsztSxLGhuyxfrpkTmYbUexwdCZeSaVEiQBAAKYqtFZhiztojexNFpCaXijEZpaHZldTfXrunLdDOlLLxwhprxUavXPKnotOXyVorRcgdrpVjIgOCtWhoQdprugxcWXxLpVUYRThsWMsAHLCystrVVjNTKMUdNnXDnadloigTZjNSuGlEFTDlmHgmnPRrbwpzpfVUUPSfuRUJBxORIFBOzTWSHuJcsPaahFZuDlQMbfOZBuoRBZLnpmoJZGwzPmXKNVFntjcUsJQsoAMoVWqXNfZznwbJrgWnLXVzwUaPZggHuzGYjnxizHorjilugNAOpMtTBhIRbLYiqqravKiEFnbwrkFrSJZMUcVoeytasvjzozcEoytGOAHhbJhplLKijUFafPQbSAvgjPaClDvpIKSpCpTlKVprWRfQRmIELagBQolphqKTUHhQgIuWxsIrmIcdmdTMPyjUieLvIofxvvaiQzeBoRXzqarRvBucpzWQHwGmqTMDieFyUJqgaHHdcixirpmvpJKbdJunecyQUvBYpdULxAXZsivfhrthNPJvnokrgJTVGMsnKxMQDhtbrbTqIFTmpvlRMRcIzQaCygTjZAIKFVbvQgHiHxbSHYfXHKhpejhqrPASelXemEQXYljyTSAjynNdEQqgvzruStWxqYGeULYfKcjmVPebVJPPIQYQkaINDswVEpBgULCPKWEIjMWMwHEwkMvrmcGunzppwWqEXgVQEZrWasXNfGjuHRgCClvmTXZMuYHcbuQQDillqykLTYudKTIosSMQhRcEmOxOCZMmFJVAUzDKasrmJQGtGjfjJwAWOHbhRRwnUcKwXjOMPCHBdORkSGcaFiIHyPrlewQQRuwcjewXMvlmdgGTeccPFRtkumJOtwsEjFytyMtKIABIsvSsTCQjEzLeJUDfPWZpKBbfjqVhFHjwFwiYUddwOQFOlCZYVAbOaIDDxVuXYRKEqQdAnNaCDmHvMWwsyQvwItSLhQeLPoJPUNEFMYLWgqWzBcHJfpINzbAfQFKddEPbiMyAgCUHjzfrvUOSZgQKXUyDSexfISQMmKOxSinggpHPgfyvValYLqGnQGuhALYYXVgYrFfjOtnnkbbaDBcVKoyAxVoUyBxJpKDGeZoRrvOFijrCbExQlYYCgIvTJLXWJiSvgkPsUIXbQBDodXctMXHJSqOAmxumrkIzZIRrWowemTwFvYTwjRfNEDDDaoCzsjXhFgIYdWXFSyiyOGsdgrGVwpWkqbXbsdcoIkTYfiMxbHhqxAYlYHWGAHfQAncdEtQzSWxKXRBmcUIQEVxoBQQpygdvccdeAwMtMglSUopDjdALfNzJAQWWAIakAFletaGyMkAKnTsyBZCEHuFKOFQxjAPKZzlSXBfvdDPYKSYAqsgmOiUlqsDUtBWWOzEJpdNfJkoXcFYDLBKBYBVgySrcxSZypPhcHrCdXkjnvRqymwwSNDpuGmCnQABujABSthUcJRtBvmDERHHYlaMtHtXIHQIhUoVsMNutOPicjORIAzOCisnFOstRnzYSNKTxHnyghZUlxDVHVYvvEMysvfQkqLYPIlCevLqUFuDNcdpWJWGUSrsXKkKPhFqbPcvvZAVHyEYqKPepAjZNNyBLcXvmYUqjMCPdFPYayvBcjekGQBSTqgxpYGkVCUetxoraOSaSngabnTblPxxWTVXsDUNAdSSqyyHmLkTxqhpsOxjXAHcODICcPwzcyzUXhcqCznjpktpUElFdFxhqFctyGTmBcQghDATQclvMlkUCFqPuLMdGapzrDXWJfQxngGwQyDekaQsOYUkwwZeokopcYCZBvXZBRYUWMCDfHLEahxbJppZZxagBrXZuGQgCKotYMkZUggHqipcWKkzOeIkFtsBRuolNfcZqqMEsJqMpsvbalzyJgmgvFgUaBXzMtGIDULsVmylpDlmQhoKTdMryYBstJkAqTBHuahDrfDBqhhOJBaZZZNHVNIWOdckEFitnLKNozYJZnIClMdqCofpFGVTOxeqiskPnRHRhukpRpzspDJMmStLlWLaUaSQIZjpaGSAlojWdiriWDyESnJLyNWDUTUMGVOWamVcFrPSdUpgiNoPFBCqmzhOsmecbSbWDWRRyFchbawUniMXQQRFQJUNuPdTVyIxBGdIUkEzMHzhpTJngYsvyfbEvgMzBewFDCwuxBirWQYSemkONyMFbqlFwqevUccVzRGNJpOtYQfINnJnMorypVPwszuoQcaaTHlwaDxsUNDRBgWhHYNnrJZvpwtaOQmVoDVnVpYUzBIxKQnrzWFqBInGxTYAajxRMdXnmsPhKgzbuDBVARQjKXGcwCnfWsSvQRBJFTpOBxvrPpRHkaCGAomGtPlIAaxnrkNyTGXsFXMXGcxdiNwRTZFxtynlFSjCNMViLOnpulWCq.txt";
int i = filePath.LastIndexOf(".txt");
tmpflname = filePath.Substring(0, i) + filePath.Substring(i + ".txt".Length);
Console.WriteLine("tmpflname="+tmpflname);
combo = System.IO.Path.Combine(filePath, fileNamer);
Console.WriteLine("path combine success");
Console.WriteLine("path combine failed");
if (filePath.IndexOf(@"\\?\UNC\")==0) Console.WriteLine("UNC=true");
Console.WriteLine("UNC=false");
Console.WriteLine("Alpha exists="+Alphaleonis.Win32.Filesystem.File.Exists(filePath).ToString());
Stopwatch s = new Stopwatch();
directoryName = Path.GetDirectoryName(filePath);
dirnameticks = s.ElapsedTicks;
}catch {directoryName="";}
if (filePath.IndexOf('\\',0,2)>=0){
Console.WriteLine("UNC yes=" + filePath);
Console.WriteLine("UNC last part=" + filePath.IndexOf('\\',2));
Console.WriteLine("UNC last part=" + filePath.IndexOf('\\',filePath.IndexOf('\\',2)+1));
Console.WriteLine("UNC last part=" + filePath.Substring(0,filePath.IndexOf('\\',filePath.IndexOf('\\',2)+1)+1));
foreach (var p in filePath.Split('\\'))
Console.WriteLine("part=" + p);
if (filePath!=null && filePath.LastIndexOf('\\') >= 0){
path = filePath.Substring(0, filePath.LastIndexOf('\\'));
if (path.Length<3 && filePath.Length<=(path.Length+1)) path="";
else if (path.Length<3 && filePath.Length > (path.Length+1)) path+='\\';
long dirnamestringticks = s.ElapsedTicks;
truth = ((path ?? string.Empty) == (directoryName ?? string.Empty))?true:false;
fileName = Path.GetFileName(filePath);
int fileLastBackSlash = filePath.LastIndexOf('\\');
if (fileLastBackSlash >= 0)
filename = filePath.Substring(fileLastBackSlash+1, filePath.Length - fileLastBackSlash-1);
bool filenametruth = ((filename ?? string.Empty) == (fileName ?? string.Empty))?true:false;
fileExt = Path.GetExtension(filePath);
int fileExtPos = filePath.LastIndexOf('.');
if (fileExtPos > filePath.LastIndexOf('\\')){
ext = filePath.Substring(fileExtPos,filePath.Length - fileExtPos);
if (ext.Length<=1) ext = "";
bool fileexttruth = ((fileExt ?? string.Empty) == (ext ?? string.Empty))?true:false;
Console.WriteLine("GetDirectoryName('{0}')["+dirnameticks+" ticks] returns '{1}'["+dirnamestringticks+" ticks] = '{2}'\t\t{3} filename '{4}'='{5}' {6} ext '{7}'='{8}' {9}",
filePath, directoryName, path, truth, fileName, filename, filenametruth, fileExt, ext, fileexttruth);
Console.WriteLine("what is this? " + filePath.Substring(filePath.LastIndexOf('\\')+1));
filePath = directoryName;
filePath = directoryName + @"\";
if (filePath!=null && filePath.Length==3 && filePath.EndsWith("\\")){
Console.WriteLine("Edge Craze :: GetDirectoryName('{0}') returns '{1}' = '{2}' ",
filePath, directoryName, path);