প্রোপার্টি.সেটেটিংস.ড্যাফল্ট কোথায় আছে?


145

আমি ভেবেছিলাম আমি এটি জানতাম তবে আজ আমি ভুল প্রমাণিত হচ্ছি - আবারও।

VS2008 চলমান, .NET 3.5 এবং সি #। আমি ডিফল্ট মান সহ প্রোপার্টি সেটিংস ট্যাবে ব্যবহারকারী সেটিংস যুক্ত করেছি, তারপরে এই কোডটি ব্যবহার করে সেগুলি পড়ুন:

myTextBox.Text = Properties.Settings.Default.MyStringProperty;

তারপরে, ব্যবহারকারী বিকল্প সংলাপে মানটি সম্পাদনা করার পরে আমি এটি এইভাবে সংরক্ষণ করি:

Properties.Settings.Default.MyStringProperty = myTextBox.Text;
Properties.Settings.Default.Save();

আমার প্রশ্ন, এই নতুন মানটি কোথায় সংরক্ষণ করা হয়েছে? এক্সিকিউটেবল ডিরেক্টরিতে MyApp.exe.config ফাইল আপডেট করা হয়নি, এটি এখনও ডিফল্ট মানগুলি অন্তর্ভুক্ত করে। প্লাস, যতদূর আমি বলতে পারি, ডিরেক্টরিতে থাকা অন্য ফাইলগুলির কোনওটিই আপডেট হয় না! যাইহোক, প্রোগ্রামটি যখন মানটি আবার ফিরে আসে তখন এটি পরিবর্তিত মান পায়, তাই আমি জানি যে এটি কোথাও সংরক্ষিত হয়েছে ...

এটি কেবল একাডেমিক নয়, আমি আজ সকালে ম্যানুয়ালি মানটি সম্পাদনা করতে সক্ষম হয়েছি এবং যখন কোনও পরিবর্তন হচ্ছে এমন কিছু খুঁজে পেলাম না তখন নিজেকে স্তিমিত করে ফেললাম।


2
এটি লক্ষ্য করা গুরুত্বপূর্ণ যে স্টোরেজের অবস্থান ফ্রেমওয়ার্ক বা ওএসের বিভিন্ন সংস্করণের মধ্যে পরিবর্তিত হতে পারে। স্টোরেজ স্থানে প্রোগ্রামিয়মেট কোনও কিছু হার্ডকোড করবেন না।
গ্রেগ ডি

আপনি যদি ভিজ্যুয়াল স্টুডিওতে থাকেন, একটি নতুন অ্যাপ্লিকেশন বিকাশ করছেন, তারপরে অ্যাপডাটা \ স্থানীয় \ মাইক্রোসফ্ট at আপনার অ্যাপ্লিকেশন নামটিতে পরীক্ষা করুন ফাইলের নাম ব্যবহারকারীর নাম কনফিগ। আমি উইন্ডোজ 7 আছি
JenonD


আমি যে সমস্যার সাথে লড়াই করে যাচ্ছিলাম তা আমাকে এবং অন্যদের কাছে নিয়ে গেছে: ইউজারকনফাইগ অ্যাপ্লিকেশনসেটিংস না হওয়া পর্যন্ত তৈরি হয় না। সেভ (); বলা হয়. (যেখানে অ্যাপ্লিকেশনসেটিংগুলি সংজ্ঞায়িত অ্যাপ্লিকেশনসেটিংস অ্যাপ্লিকেশনসেটিংস = নতুন অ্যাপ্লিকেশনসেটিংস (এটি);)।
একত্রিত

উত্তর:


142

প্রোগ্রাম ফাইল ফোল্ডারে ডিফল্টরূপে কেবলমাত্র পাঠ্য অ্যাক্সেসের অনুমতি দেওয়ার উইন্ডোজের নীতিগুলির নতুন সংস্করণগুলির সাথে কাজ করার জন্য (আপনি যদি ইউএসি-র সাথে উন্নতির জন্য অনুরোধ না করেন তবে এটি অন্য বিষয় ...), আপনার অ্যাপ্লিকেশনটির অধীনে একটি সেটিংস ফোল্ডার থাকবে %userprofile%\appdata\local বা %userprofile%\Local Settings\Application Dataআপনি যে উইন্ডোটির সংস্করণটি চালাচ্ছেন তার উপর নির্ভর করে ব্যবহারকারীদের জন্য নির্দিষ্ট সেটিংসের জন্য। আপনি যদি সমস্ত ব্যবহারকারীর জন্য সেটিংস সঞ্চয় করেন তবে সেগুলি সংশ্লিষ্ট ব্যবহারকারী ফোল্ডারে C:\usersবা C:\Documents and Settingsসমস্ত ব্যবহারকারীর প্রোফাইলে (যেমন C:\users\public\appdata\local:) থাকবে।


3
এছাড়াও, ভিজ্যুয়াল স্টুডিওতে উত্পাদিত .config, যা এক্সিকিউটেবলের ফোল্ডারে শেষ হয়, আমি বিশ্বাস করি যে এটি কেবলমাত্র ডিবাগিংয়ের জন্য ব্যবহৃত হয়। চূড়ান্ত অ্যাপ্লিকেশনটি প্যাকেজিংয়ের সময়, আপনি এই .কনফিগটি অন্তর্ভুক্ত করবেন না, কারণ এটি ব্যবহারকারী প্রথমবারের মতো অ্যাপ্লিকেশন চালায়।
উইল এডিন্স

11
আরও নতুন সংস্করণ? উইন্ডোজ 2000 এর পরে থেকে এটি ঘটেছে You আপনি প্রশাসক হিসাবে চালাচ্ছিলেন বলে আপনি কেবল এটি থেকে দূরে সরে গেছেন।
জোয়েল কোহোর্ন

1
@ জোয়েল কোহোর্ন: সত্য, তবে এখন উইন্ডোজ ভিস্তার অ্যাডমিনিস্ট্রেটর অ্যাকাউন্টে এবং ডিফল্টরূপে কোনও ইউএসি এলিভেশন প্রম্পট ছাড়াই আপনি প্রোগ্রাম ফাইলগুলিতে লেখার অ্যাক্সেস পেতে পারবেন না। সেই নীতিই বদলেছে। :)
জেসনহ

2
এটিও লক্ষ করা উচিত যে ফোল্ডারটি প্রতিটি সংস্করণ আপগ্রেডের সাথে পরিবর্তিত হয় - সুতরাং আপনি যখনই সফ্টওয়্যারটি আপডেট করবেন তখন ব্যবহারকারী তাদের পছন্দগুলি হারিয়ে ফেলে।
ইয়ান বয়ড

17
আসলে না, তারা না। আপনার একটি সেটিং তৈরি করতে হবে, এর নামকরণ করুন "আপগ্রেডনিড" এবং এটিকে সত্য হিসাবে ডিফল্ট করুন। তারপরে আপনার অ্যাপটি শুরু হয়ে গেলে এটি পরীক্ষা করে দেখুন। যদি এটি সত্য হয়, প্রোপার্টি কল করুন et সেটিংগুলি ef ডেফল্ট Uআপগ্রেড (), সংরক্ষণ করুন () এবং and পুনরায় ()। তারপরে আপগ্রেডনিডকে মিথ্যা ও পুনরায় সংরক্ষণ করুন।
জেসনহ

86

প্রোগ্রামটিগতভাবে আপনি পাথটি পেতে পারেন:

using System.Configuration;  // Add a reference to System.Configuration.dll
...
var path = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;

1
হুম, আমি এমন পরিস্থিতি দেখছি যেখানে এর দ্বারা ফিরে আসা পথটি সেটিংসের দ্বারা ব্যবহৃত পথ নয়। কোন অন্তর্দৃষ্টি?
জর্জ মাউয়ার

1
@ জর্জিমৌয়ার আপনি Roamingবা LocalLowতার পরিবর্তে সম্ভবত Local? ConfigurationUserLevelব্যবহারকারীর প্রোফাইল রোমিং বা স্থানীয় হওয়ার উপর নির্ভর করে। সংস্থাগুলিতে এটি প্রায়শই ঘোরাঘুরি করে।
কে জেদ

এই উত্তরটি এবং এর নীচে আমার মন্তব্যগুলির সাথে লিঙ্ক করা , পথটি কেমন দেখাচ্ছে তা দেখিয়ে।
কে জেদ

আমি সর্বত্র এই একই উত্তরটি খুঁজে পাচ্ছি, কনফিগারেশন ম্যানেজার.অপেনএক্সে কনফিগারেশন () ব্যবহার করুন - তবে এটি আপনাকে কনফিগারেশন ইউজারলিভেলের কোন মানটি পাস করে তার উপর নির্ভর করে তিনটি বিকল্প দেয় যা তিনটি পৃথক ফলাফল দেয় - এটি কোনটি ?. কোনও প্রোগ্রামে, কোডে, রান সময়ে আপনি কীভাবে আবিষ্কার করবেন, প্রোগ্রামটি ঠিক কোন ফাইল থেকে সেটিংস পাচ্ছে?
ডেভ

কোনওটি নয়: কনফিগারেশনটি যা সমস্ত ব্যবহারকারীর জন্য প্রযোজ্য তা পেয়ে যায়, পেরুউসাররোমিং: বর্তমান ব্যবহারকারীর ক্ষেত্রে প্রযোজ্য রোমিং কনফিগারেশন পান পেরুসাররোমিংএন্ডলোকাল: বর্তমান ব্যবহারকারীর ক্ষেত্রে প্রযোজ্য স্থানীয় কনফিগারেশনটি পান।
আকবরিতাবর

8

আমাকে সঠিক দিকে নির্দেশ করার জন্য ধন্যবাদ আমি এই দানবটিতে ইউজার.কনফিগটি পেয়েছি: সি: \ ব্যবহারকারীরা \ ব্যবহারকারী \ অ্যাপডাটা \ স্থানীয় MP সংস্থা \ অ্যাপ্লিকেশন ex

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


কীভাবে লুকস্লিকসেসকেইকনডোফ্যাশ জানেন?
নিওসভেট

1
প্রোপার্টি.সেটেটিংস.ডাফল্ট.আপগ্রেড () কলটি স্বয়ংক্রিয়ভাবে এটি করবে। এটি পূর্ববর্তী সংস্করণ থেকে কনফিগারটি পুনরুদ্ধার করে, ঠিক যেমন @ জেসন উপরের অন্যান্য উত্তরে বলেছিল।
অ্যালেক্স

5

এটি আপনার ডকুমেন্টস এবং সেটিংস \% ব্যবহারকারী% \ স্থানীয় সেটিংস \ অ্যাপ্লিকেশন ডেটা ...... ইত্যাদি নামক কোনো ফাইল অনুসন্ধান সংরক্ষিত হয় user.config সেখানে

অবস্থানটি পরিবর্তন হতে পারে।


5
প্রকৃতপক্ষে, ব্যবহারকারী-নির্দিষ্ট বৈশিষ্ট্যগুলির জন্য সঠিক পরিবেশের পরিবর্তনশীলটি হ'ল% ব্যবহারকারী প্রোফাইল ile ভিস্তার বা 7 এর অধীনে দস্তাবেজ এবং সেটিংস নির্দিষ্ট করে দেওয়ার ফলে ফোল্ডারটি খুঁজে পাওয়া যায় না বা ফোল্ডারে এটির সন্ধানের অনুমতি অনুপস্থিত থাকে।
জেসনহ

1

আমার একটি উইন্ডোজ পরিষেবাদি উইন্ডোজ সার্ভার ২০১ Local সালে লোকাল সিস্টেম হিসাবে লগইন হয়েছে এবং আমি সি: \ উইন্ডোজ ys সিএসডাব্লু 64৪ \ কনফিগারেশন \ সিস্টেম্প্রোফাইল \ অ্যাপডাটা \ লোকাল \ application আপনার অ্যাপ্লিকেশন নাম under এর অধীনে ইউজার.কনফিগটি দেখতে পাচ্ছি}

আমি মনে করি সবচেয়ে সহজ উপায় হ'ল সি ড্রাইভে আপনার অ্যাপ্লিকেশনটির নাম অনুসন্ধান করা হবে এবং তারপরে ব্যবহারকারীকনফিগটি কোথায় রয়েছে তা যাচাই করুন


0

ব্যবহারকারীর নির্দিষ্ট সেটিংসটি সেই অ্যাপ্লিকেশনের জন্য ব্যবহারকারীর অ্যাপ্লিকেশন ডেটা ফোল্ডারে সংরক্ষিত হয়। একটি user.configফাইল সন্ধান করুন।

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


0

এগুলি সেভ হয় YOUR_APP.exe.config, ফাইলটি একই ফোল্ডারে YOUR_APP.exeফাইল, <userSettings>বিভাগ সহ সংরক্ষণ করা হয় :

   <userSettings>
      <ShowGitlabIssues.Properties.Settings>
         <setting name="SavedUserName" serializeAs="String">
            <value />
         </setting>
         <setting name="SavedPassword" serializeAs="String">
            <value />
         </setting>
         <setting name="CheckSave" serializeAs="String">
            <value>False</value>
         </setting>
      </ShowGitlabIssues.Properties.Settings>
   </userSettings>

এখানে সিএস কোড রয়েছে:

public void LoadInfoLogin()
{
    if (Properties.Settings.Default.CheckSave)// chkRemember.Checked)
    {
        txtUsername.Text = Properties.Settings.Default.SaveUserName;
        txtPassword.Text = Properties.Settings.Default.SavePassword;
        chkRemember.Checked = true;
    }
...

-1

মাইক্রোসফ্ট স্টোর থেকে অ্যাপ্লিকেশনগুলির জন্য সেটিংস কোথায় রয়েছে সে সম্পর্কে যে কেউ ভাবছেন, সেগুলি হয় উইন্ডোজ অ্যাপগুলিতে, যা খুব লকড রয়েছে তবে আপনি নিজের অ্যাপ্লিকেশনটি খোলার পরে টাস্ক-ম্যানেজারের সাথে ফাইলের পথটি খোলার মাধ্যমে সেখানে যেতে পারেন।

তবে সম্ভবত তারা সেভ হয়ে গেছে C:\Users\[USERNAME]\AppData\Local\Packages\[NUMBERS][COMPANY].[APPLICATION]_[RANDOMDATA]\LocalCache\Local\[COMPANY]\[APPLICATION].exe_Url_[RANDOMDATA]\[VERSION]\user.config.


-17

আপনার প্রকল্পের রুট ফোল্ডারের নীচে "সম্পত্তি" নামে একটি ফোল্ডার রয়েছে এবং সেই ফোল্ডারের নীচে * .settings ফাইল রয়েছে। এটি সেখানে সঞ্চিত হয়।


1
এটি বিকাশের সময় ঠিক । মোতায়েনের পরে তারা অন্য কোথাও যায়।
জোয়েল কোহর্ন

2
আমার এটি বিকাশের পরিবেশে চলছে এবং ফাইলটি অপরিবর্তিত রয়েছে। এটি কেবলমাত্র সেখানে ডিফল্ট মান সংরক্ষণ করে not
স্ট্যান আর।

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