When i use OpenFileDialog to Open file, of course i need to get the file directory and its name to load the file.(to load xml, to access the file i need full path.)
opd is OpenFileDialog
        if (opd.ShowDialog() == true)
        {
            var names = opd.FileNames;
            foreach (string name in names)
            {
                LoadFile(Path.Combine(Path.GetDirectoryName(name), name));
            }
        }
my question is How Path.GetDirectoryName take the path of the File by Just taking the string ?
Path.GetDirectoryName(name)
name is Just string and this method takes its directory by just taking string? . there can be thousands of files with same name inside computer.
ShortQuestion:
where is opd refrenced?
Edit:
i thought opd.FileNames just takes name of the files.(because of methods name)
and Also i found something interesting.
LoadFile(Path.Combine(Path.GetDirectoryName(name), name));
this works fine Because Path.Combine will just skip the same part of string.
Ex:
string name = @"C:\Users\Default\xml.xml";
string getDirNameResault= Path.GetDirectoryName(name);// this will be C:\Users\Default
So Path.Combine will be
 Path.Combine(@"C:\Users\Default", @"C:\Users\Default\xml.xml)
witch returns "C:\Users\Default\xml.xml" !
                        
namecontains the full path,Path.GetDirectoryName()just strips everything after the last directory separator,Path.Combine(Path.GetDirectoryName(name), name)will not do anything useful:Just use
namedirectly.