ফোল্ডার ব্রাউজার ডায়ালগ শুরু অবস্থান সেট করুন


113

কোনও ফোল্ডার ব্রাউজারের ডায়ালগের প্রাথমিক ডিরেক্টরিটি কোনও অ-বিশেষ ফোল্ডারে সেট করার কোনও উপায় আছে কি? আমি বর্তমানে এটি ব্যবহার করছি

fdbLocation.RootFolder = Environment.SpecialFolder.Desktop;
তবে আমি কোনও স্ট্রিংয়ের মধ্যে সংরক্ষণ করেছি এমন পথটি ব্যবহার করতে চাই
fdbLocation.RootFolder = myFolder;
এটি একটি ত্রুটির কারণ "" স্ট্রিংকে 'সিস্টেম' এ রূপান্তর করতে পারে না n

উত্তর:


188

শোডায়ালগ কল করার আগে কেবল নির্বাচিতপথ সম্পত্তি সেট করুন।

fdbLocation.SelectedPath = myFolder;

20
নোট করুন যে এটি সেট RootFolderকরা প্রয়োজন Environment.SpecialFolder.Desktopবা এটি কাজ নাও করতে পারে।
— মাইক লোয়ার

3
চ্যাড গ্রান্টের উত্তরটি নীচে দেখুন: তিনি সঠিকভাবে ব্যাখ্যা করেছেন যে রুটফোল্ডারটি অবশ্যই সেট করা উচিত এবং কাজ করার জন্য নির্বাচিতপথ অবশ্যই রুটফোর্ডারের নীচে থাকতে হবে ।
— ডাঃ স্নুজ

3
এটি আমার পক্ষে কাজ করে তবে এটি ফোল্ডারে ফোকাস সেট করে না। আমাকে ম্যানুয়ালি নীচে স্ক্রোল করতে হবে এবং এতে ফোল্ডারটি ডিফল্ট হয়েছিল find এটি দেখানোর সময় ফোকাসটি স্বয়ংক্রিয়ভাবে সেট করার কোনও উপায় আছে কি?
— জোব্যাক্সটার

2
এটি সেটিংয়ের মতো নয়RootFolder । যদি RootFolderসেট করা থাকে তবে কেবলমাত্র নির্দিষ্ট ফোল্ডার এবং এর নীচে থাকা কোনও সাবফোল্ডারই ডায়ালগ বক্সে উপস্থিত হবে। SelectedPathনিছক প্রদত্ত পথটিকে পূর্বনির্বাচিত করে।
— জান গ্যাসেন

30

আপনি শোডায়ালগ কল করার আগে নির্বাচিতপথ সম্পত্তি সেট করুন ...

folderBrowserDialog1.SelectedPath = @"c:\temp\";
folderBrowserDialog1.ShowDialog();

এগুলি সি: \ টেম্পে শুরু করবে


রুটফোল্ডার ( SelectedPath is set to an absolute path that is a subfolder of RootFolder) সেট করতে হবে ? আচরণ হিসাবে: Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)আয় সি: \ ব্যবহারকারী \ Myusername \ ডেস্কটপ। ছদ্মবেশী কোড ব্যবহার করে (লগন টাইপ LOGON32_LOGON_INTERACTIVE সহ) খালি স্ট্রিংটি
— কিউকিনেট

24
fldrDialog.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)

"যদি নির্বাচিতপথ বৈশিষ্ট্যটি ডায়ালগ বাক্সটি দেখানোর আগে সেট করা থাকে তবে এই পাথযুক্ত ফোল্ডারটি নির্বাচিত ফোল্ডার হবে, যতক্ষণ না সেলেক্টপ্যাথটি একটি নিখুঁত পথে সেট করা থাকে যা রুটফোল্ডারের একটি সাবফোল্ডার (বা আরও সঠিকভাবে, এর সাবফোল্ডারকে নির্দেশ করে) শেল নামস্থানটি রুটফোল্ডার দ্বারা প্রতিনিধিত্ব করা হয়) ""

এমএসডিএন - নির্বাচিতপথ

"গেটফোল্ডারপথ পদ্ধতিটি এই গণনার সাথে সম্পর্কিত অবস্থানগুলি ফিরিয়ে দেয় these এই ফোল্ডারগুলির অবস্থানগুলির বিভিন্ন অপারেটিং সিস্টেমে বিভিন্ন মান থাকতে পারে, ব্যবহারকারী কিছু স্থান পরিবর্তন করতে পারে এবং অবস্থানগুলি স্থানীয়করণ করা হয়।"

উত্তর: ডেস্কটপ বনাম ডেস্কটপ ডিরেক্টরি

ডেস্কটপ

"শারীরিক ফাইল সিস্টেম অবস্থানের চেয়ে লজিকাল ডেস্কটপ।"

DesktopDirectory:

"ডেস্কটপে ফাইল অবজেক্টগুলি শারীরিকভাবে সঞ্চয় করতে ব্যবহৃত ডিরেক্টরিটি।

এমএসডিএন - বিশেষ ফোল্ডার এনুম

এমএসডিএন - গেটফোল্ডারপাথ


বিশেষ পাথ জন্য আপনি {{fldrDialog.RootFolder = Environment.SpecialFolder.DesktopDirectory}} কি করতে পারেন
— tymtam

পারফেক্ট। ধন্যবাদ. মূলটি হ'ল সিলেক্টপথটি অবশ্যই রুটফোল্ডারের নীচে থাকতে হবে যদি ডায়ালগটি সিলেক্টপ্যাথটি খোলার সময় পয়েন্ট করা হয়।
— ডাঃ স্নুজ

আচরণ হিসাবে: Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)আয় সি: \ ব্যবহারকারী \ Myusername \ ডেস্কটপ। ছদ্মবেশী কোড ব্যবহার করে (লগনটাইপ LOGON32_LOGON_INTERACTIVE সহ) খালি স্ট্রিংটি
— কিউকিনেট

9

ডিরেক্টরিটি নির্বাচিত পাথ সেট করতে এবং নতুন ডিরেক্টরিটি পুনরুদ্ধার করতে:

dlgBrowseForLogDirectory.SelectedPath = m_LogDirectory;
if (dlgBrowseForLogDirectory.ShowDialog() == DialogResult.OK)
{
     txtLogDirectory.Text = dlgBrowseForLogDirectory.SelectedPath;
}

2

Dotnet-snippets.de এ পাওয়া গেছে

প্রতিবিম্ব সহ এটি কাজ করে এবং আসল রুটফোল্ডার সেট করে !

using System;
using System.Reflection;
using System.Windows.Forms;

namespace YourNamespace
{
    public class RootFolderBrowserDialog
    {

        #region Public Properties

        /// <summary>
        ///   The description of the dialog.
        /// </summary>
        public string Description { get; set; } = "Chose folder...";

        /// <summary>
        ///   The ROOT path!
        /// </summary>
        public string RootPath { get; set; } = "";

        /// <summary>
        ///   The SelectedPath. Here is no initialization possible.
        /// </summary>
        public string SelectedPath { get; private set; } = "";

        #endregion Public Properties

        #region Public Methods

        /// <summary>
        ///   Shows the dialog...
        /// </summary>
        /// <returns>OK, if the user selected a folder or Cancel, if no folder is selected.</returns>
        public DialogResult ShowDialog()
        {
            var shellType = Type.GetTypeFromProgID("Shell.Application");
            var shell = Activator.CreateInstance(shellType);
            var folder = shellType.InvokeMember(
                             "BrowseForFolder", BindingFlags.InvokeMethod, null,
                             shell, new object[] { 0, Description, 0, RootPath, });
            if (folder is null)
            {
                return DialogResult.Cancel;
            }
            else
            {
                var folderSelf = folder.GetType().InvokeMember(
                                     "Self", BindingFlags.GetProperty, null,
                                     folder, null);
                SelectedPath = folderSelf.GetType().InvokeMember(
                                   "Path", BindingFlags.GetProperty, null,
                                   folderSelf, null) as string;
                // maybe ensure that SelectedPath is set
                return DialogResult.OK;
            }
        }

        #endregion Public Methods

    }
}

প্রিসেট ফোল্ডার আইটেমটি কীভাবে প্রসারিত এবং ভেঙে দেওয়া যায় কোনও ধারণা?
— গুডিজ

আমি upvated এবং এই উত্তর পছন্দ, কিন্তু !! এটি লক্ষ করা উচিত যে ব্যবহারকারী এই রুট ফোল্ডারটি সেট করা আছে তার চেয়ে বেশি ব্রাউজ করতে সক্ষম হবে না, এমএসডিএন অনুসারে: ডকস.মাইক্রোসফটকম / উইন্ডস / উইন্ডোজ / উইন্ডোজ / শেল /… । আমি ব্যবহৃত প্রায় কাজ সহজ, ডিফল্ট। নেট ফোল্ডার ব্রাউজার ব্যবহার করুন, বিশেষ ফোল্ডারটি মাই কম্পিউটারে সেট করুন, তারপরে নির্বাচিত পথটি সেট করুন। এটি নির্বাচিত পাথ ডিরেক্টরি পর্যন্ত ফোল্ডারগুলি প্রসারিত করবে, কিন্তু এতে স্ক্রোল করবে না।
— হিরিবার্তো লুগো

0

আমার ক্ষেত্রে এটি দুর্ঘটনাক্রমে ডাবল পলায়ন ছিল।

এইটা কাজ করে:

SelectedPath = @"C:\Program Files\My Company\My product";

এটি না:

SelectedPath = @"C:\\Program Files\\My Company\\My product";
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.