programing

WPF 앱 내에서 특정 디렉터리로 Windows 탐색기를 여는 방법은 무엇입니까?

i4 2023. 5. 6. 14:04
반응형

WPF 앱 내에서 특정 디렉터리로 Windows 탐색기를 여는 방법은 무엇입니까?

WPF 응용 프로그램에서 사용자가 특정 디렉터리에 대한 Windows 탐색기를 열고 싶은 버튼을 클릭하면 어떻게 합니까?

저는 다음과 같은 것을 기대합니다.

Windows.OpenExplorer("c:\test");

그거 좋지Process.Start(@"c:\test");?

Process.Start("explorer.exe" , @"C:\Users");

나는 이것을 사용해야 했습니다. 단지 tgtdir를 지정하는 다른 방법은 내 애플리케이션이 종료될 때 탐색기 창을 닫게 됩니다.

이렇게 하면 됩니다.

Process.Start(@"<directory goes here>")

또는 프로그램을 실행하거나 파일 및/또는 폴더를 여는 방법을 원하는 경우:

private void StartProcess(string path)
{
    ProcessStartInfo StartInformation = new ProcessStartInfo();

    StartInformation.FileName = path;

    Process process = Process.Start(StartInformation);

    process.EnableRaisingEvents = true;
}

그런 다음 메소드를 호출하고 괄호 안에 파일 및/또는 폴더의 디렉토리 또는 응용프로그램의 이름을 입력합니다.이것이 도움이 되었기를 바랍니다!

사용할 수 있습니다.System.Diagnostics.Process.Start.

또는 다음과 같은 것과 함께 WinApi를 직접 사용하면 explector.exe가 실행됩니다.ShellExecute의 네 번째 매개 변수를 사용하여 시작 디렉터리를 지정할 수 있습니다.

public partial class Window1 : Window
{
    public Window1()
    {
        ShellExecute(IntPtr.Zero, "open", "explorer.exe", "", "", ShowCommands.SW_NORMAL);
        InitializeComponent();
    }

    public enum ShowCommands : int
    {
        SW_HIDE = 0,
        SW_SHOWNORMAL = 1,
        SW_NORMAL = 1,
        SW_SHOWMINIMIZED = 2,
        SW_SHOWMAXIMIZED = 3,
        SW_MAXIMIZE = 3,
        SW_SHOWNOACTIVATE = 4,
        SW_SHOW = 5,
        SW_MINIMIZE = 6,
        SW_SHOWMINNOACTIVE = 7,
        SW_SHOWNA = 8,
        SW_RESTORE = 9,
        SW_SHOWDEFAULT = 10,
        SW_FORCEMINIMIZE = 11,
        SW_MAX = 11
    }

    [DllImport("shell32.dll")]
    static extern IntPtr ShellExecute(
        IntPtr hwnd,
        string lpOperation,
        string lpFile,
        string lpParameters,
        string lpDirectory,
        ShowCommands nShowCmd);
}

선언문은 pinvoke.net 웹사이트에서 제공됩니다.

제가 성공한 것은 다음과 같습니다.

기본적으로 명령줄을 사용하여 "c:/path 시작"을 호출하고 "c:/path 종료"를 종료합니다.

WindowsExplorerOpen(@"C:/path");

        public static void WindowsExplorerOpen(string path)
        {
            CommandLine(path, $"start {path}");
        }

        private static void CommandLine(string workingDirectory, string Command)
        {
            ProcessStartInfo ProcessInfo;
            Process Process;

            ProcessInfo = new ProcessStartInfo("cmd.exe", "/K " + Command + " && exit");
            ProcessInfo.WorkingDirectory = workingDirectory;
            ProcessInfo.CreateNoWindow = true;
            ProcessInfo.UseShellExecute = true;
            ProcessInfo.WindowStyle = ProcessWindowStyle.Hidden;

            Process = Process.Start(ProcessInfo);
            Process.WaitForExit();
        }

이 두 가지 모두 나에게 효과가 없었습니다.

Process.Start(@"c:\test");
Process.Start("explorer.exe" , @"C:\Users");

언급URL : https://stackoverflow.com/questions/1746079/how-can-i-open-windows-explorer-to-a-certain-directory-from-within-a-wpf-app

반응형