SrgjanX Ответов: 3

Как открыть проводник файлов в заданном месте в c#?


как сделать код, который для данного местоположения каталога находится в переменной, например:
строка _path = "c:/windows"

на кнопке нажмите событие, чтобы запустить проводник файлов по этому пути?

я спрашиваю что-то точно, как команда start работает в командной строке cmd, например, в cmd is: start "start c:/windows-есть какие-нибудь идеи?

надеюсь, вы понимаете, что я имею в виду

3 Ответов

Рейтинг:
23

BillWoodruff

// required in addition to other 'using necessary
using System.Diagnostics;
using System.IO;

private void OpenFolder(string folderPath)
{
    if (Directory.Exists(folderPath))
    {
        ProcessStartInfo startInfo = new ProcessStartInfo
        {
            Arguments = folderPath,
            FileName = "explorer.exe";
        };

        Process.Start(startInfo);
    }
    else
    {
        MessageBox.Show(string.Format("{0} Directory does not exist!", folderPath));
    }
}
Примечание: если бы я писал это в производственном коде, я бы, вероятно, обернул все это в Try/Catch, чтобы перехватить возможные ошибки разрешения доступа.


Рейтинг:
2

DamithSL

вы можете попробовать, выполнив команду run, как показано ниже

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
string _path = "c:/windows";
startInfo.Arguments = string.Format("/C start {0}", _path);
process.StartInfo = startInfo;
process.Start();


Рейтинг:
0

Philippe Mori

Самый простой способ-спросить у Google. Это займет гораздо меньше времени, чтобы найти ответ таким образом, чем написать сам вопрос здесь : https://www.google.ca/?gws_rd=ssl#q=open+file+in+explorer+c%23[^]

Ответ на этот вопрос был дан здесь : http://stackoverflow.com/questions/1073353/c-how-to-open-windows-explorer-windows-with-a-number-of-files-selected[^]

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

Обновление
Чтобы открыть папку, вы просто указываете имя папки без /select, part. Что-то вроде explorer c:\folder_name.

/select option требует наличия существующего файла или папки, откройте его родительский элемент и выберите нужный элемент. Таким образом, доступны оба варианта.


BillWoodruff

#1 голосование

ОП спрашивает, Как открыть окно Проводника определенного каталога, а не как открыть файл.

Если вы "не уверены" и "не помните", что работает для вас, является ли это "решением" ?

Philippe Mori

Я обновил свое решение. Фактически, select option откроет родительскую папку, если вы не укажете файл, поэтому лучше просто пропустить имя папки в качестве аргумента.

Ну, даже если бы это было не решение, учитывая, что OP должен был бы только удалить /select, часть его была не слишком далека от решения. Основная идея заключалась в том, что быстрее всего было бы сделать поиск в Google по такому вопросу.

SrgjanX

спасибо все сделано :)