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"
!
name
contains 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
name
directly.