2013-08-15 4 views
5

Я хочу, чтобы открыть папку, в которой файл был сохранен только и выберите файл, для этого я использую этот небольшой код:Открыть папку вопрос

var psi = new ProcessStartInfo("Explorer.exe", "/select," + dlg.FileName); 
       Process.Start(psi); 

Он прекрасно работает.

Мне нужно поместить этот код в нескольких местах, поэтому я решил создать метод, есть также условие в этом методе:

private static void OpenFolderAndSelectMyFile(string fileName) 
{ 
    if (MySettings.Default.openFolder == true) 
    { 
     var psi = new ProcessStartInfo("Explorer.exe", "/select," + fileName); 
     psi.WindowStyle = ProcessWindowStyle.Maximized; 
     Process.Start(psi); 
    }  
} 

Это не работает, как ожидалось: это открывает родительскую папку (из папки, содержащей мой файл). Он также выбирает папку.

Почему это различие в поведении и как его решить?

+5

Вы проверили переданное 'filename'? –

+2

Можете ли вы разместить код вызова? –

ответ

3

Единственный способ для этого - fileName - это не то, что было в вашем исходном коде. Код точно такой же и будет работать, как ожидалось, если fileName был тем, чем он был в исходном кодовом расположении.

Скорее всего, fileName - это фактически полный путь к папке, а не полный путь к файлу , включая имя файла.

+2

Вы правы, я проходил строчку, которая была изменена. Теперь он работает правильно. – Sturm