ডাব্লুপিএফ অ্যাপ্লিকেশন থেকে আমি কীভাবে উইন্ডোজ এক্সপ্লোরারকে একটি নির্দিষ্ট ডিরেক্টরিতে খুলতে পারি?


150

ডাব্লুপিএফ অ্যাপ্লিকেশনটিতে, যখন কোনও ব্যবহারকারী কোনও বোতামে ক্লিক করে আমি উইন্ডোজ এক্সপ্লোরারকে একটি নির্দিষ্ট ডিরেক্টরিতে খুলতে চাই, আমি কীভাবে এটি করব?

আমি এই জাতীয় কিছু আশা করব:

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

উত্তর:


306

না কেন Process.Start(@"c:\test");?


9
দ্রষ্টব্য: আপনি অন্যান্য অ্যাপ্লিকেশনগুলি চালানোর জন্য এটি ব্যবহার করতে পারেন। Process.Start("calc.exe");ক্যালকুলেটর চালাবেন। আপনি এটিকে এক্সিকিউটেবলের পুরো পথটি পাস করতে পারেন এবং এটি এটি চালাবে।
জেমি পেনি

1
LOL, হ্যাঁ, কেন না। মজার, অ্যাপ্লিকেশন ছিল my আমার মাথায় চালানো, সর্বব্যাপী প্রক্রিয়াতে যেতে পারেনি art স্টার্ট এবং ভেবেছিল যে ডাব্লুপিএফ আমার সাথে গেম খেলছে।
আবেল

9
দ্রষ্টব্য: এটি না থাকলে এটি একটি ব্যতিক্রম ছুঁড়ে দেবে। প্রসেস.স্টার্ট ("এক্সপ্লোরার", @ "সি: \ পরীক্ষা") ব্যবহার করে দেখুন; পরিবর্তে, যদি আপনি ব্যতিক্রমটি পরিচালনা করতে না চান। এটি একটি ডিফল্ট উইন্ডো খুলবে। তবে প্রায়শই ব্যতিক্রমটি পরিচালনা করা ভাল।
একমলগমেতে

9
সাবধান হোন যে কেউ যদি দূষিত (বা কেবল অজানা) সেখানে কোনও স্ট্রিং পেতে পারেন তবে তারা যে কোনও প্রোগ্রাম কার্যকর করতে সক্ষম হবেন। @ মলগামাতে পরামর্শটি আরও সুরক্ষিত, অন্যথায় যদি পথটি ডিরেক্টরি হয় এবং এটি আগে উপস্থিত আছে কিনা তা পরীক্ষা করে দেখুন।
খ্রিস্টান রোনডাউ

3
Start(dir)এবং এর মধ্যে আরও একটি পার্থক্য Start("explorer.exe", dir)হ'ল প্রাক্তনটি বিদ্যমান উইন্ডোটির জন্য dirযদি সেখানে একটি থাকে তবে তা ফোকাস করতে যথেষ্ট স্মার্ট হবে , যখন পরবর্তীটি প্রতিবার একটি নতুন উইন্ডো খোলায়।
ডিএলএফ

13

এই কাজ করা উচিত:

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;
}

এবং তারপরে পদ্ধতিটি কল করুন এবং প্রথম বন্ধনীতে ফাইলের ডিরেক্টরি এবং / অথবা ফোল্ডারটি সেখানে রাখুন বা অ্যাপ্লিকেশনটির নাম দিন। আশা করি এটি সাহায্য করেছে!


12

আপনি ব্যবহার করতে পারেন System.Diagnostics.Process.Start

বা উইনপিটি সরাসরি নীচের মতো কিছু ব্যবহার করুন, যা এক্সপ্লোরার এক্সেক্স চালু করবে। এটির সূচনা করার জন্য আপনি শেলএক্সিকিউটের চতুর্থ প্যারামিটার ব্যবহার করতে পারেন।

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);
}

এই ঘোষণাগুলি পিনভোক.নেট ওয়েবসাইট থেকে এসেছে ।


1
হ্যাঁ, আমি তাড়া করতে গিয়ে ত্রুটি পেয়েছি, <স্ট্রাইক> ধর্মঘট </ স্ট্রাইক> বিটিডব্লিউ শান্ত সম্পর্কে জানতাম না
এডওয়ার্ড টাঙ্গুয়ে

1
যা দুর্ভাগ্যক্রমে শুধুমাত্র উত্তর / প্রশ্নের ক্ষেত্রে কাজ করে তবে মন্তব্যগুলিতে নয় ;-)। আমি সবেমাত্র আপডেট করেছি।
আবেল

+1 আমি এই অ্যাপ্লিকেশনটি অন্য অ্যাপ্লিকেশনগুলি লঞ্চ করতে ব্যবহার করব, তবে প্রক্রিয়া.স্টার্ট () ঠিক আমার প্রয়োজন মতো ছিল।
এডওয়ার্ড টাঙ্গুয়ে

আপনি যখন প্রশ্নটির উত্তর দেওয়ার চেষ্টা করবেন তখনই এটি ঘটে। একটি 3 এএম: আপনি স্পষ্ট ;-) মিস করবেন। যাইহোক, আমি মনে করি আমি প্রায়শই শেলএক্সেকুট ব্যবহার করি যখন প্রসেস.স্টার্ট আমার যা চায় তা না করে (কয়েকটি পরিস্থিতি এটি পরিচালনা করতে পারে না)।
আবেল

আপনি (প্রথম দুটি বাক্যের মধ্যে) যা বলেছিলেন তা উইনফর্ম অ্যাপ্লিকেশন থেকে কাজ করবে, অ্যাপ্লিকেশন। রুন ("এক্সপ্লোরার এক্সেক্স") কাজ করে না। কারণ অ্যাপ্লিকেশন.আরুন একটি
স্ট্রিংও

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

আমাকে এটি ব্যবহার করতে হয়েছিল, আমার অ্যাপ্লিকেশনটি বন্ধ হয়ে গেলে কেবলমাত্র টিজিটি ডির নির্দিষ্ট করার অন্য উপায়টি এক্সপ্লোরার উইন্ডোটি বন্ধ করে দেবে।


একমাত্র উত্তর আমি Access deniedব্যতিক্রম পাই না ।
মাতাস ভাইটকেভিচিয়াস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.