Я использую чужой код (лицензированный) на двух разных машинах. На одной машине Application.ExecutablePath возвращает результат, который должен был ожидать программист, а с другой - нет. Обе машины Windows 7.Application.Executablepath в C# имеет смешанные символы разделителя
На моей машине Application.ExecutablePath возвращает что-то вроде:
"C:\\Dir1\\Dir2\\Dir3/bin/Debug/APP.EXE"
На другой машине, то он возвращает
"C:\\Dir1\\Dir2\\Dir3\\bin/Debug/APP.EXE"
Программист явно ожидаемый второй возвращаемой строки, потому что код делает это:
string path = Application.ExecutablePath;
short found = (short)path.LastIndexOf(@"\");
if (found > -1)
{
path = path.Substring(0, found);
}
try
{
foreach (string File in Directory.GetFiles(path + @"\Res\Patterns\", "*.xml"))
{
found = (short)File.LastIndexOf(@"\");
if (found > -1)
//... use files found
и каталог файлов присутствует в обоих машины под Dir3, поэтому он находится на другой машине, но не на моем. Я не могу найти информацию о том, когда и где Windows решает вернуть косую черту (например, путь URL) по пути UNC, используя «\». Почему этот код работает по-разному на разных машинах?