কোন ডিরেক্টরিতে গেমটি ফাইল / ডেটা সংরক্ষণ করবেন?


37

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

দয়া করে প্ল্যাটফর্ম প্রতি একটি উত্তর প্রদান বিভিন্ন ডিরেক্টরি সঙ্গে। এছাড়াও, সি ++ বা সি-তে ডিরেক্টরি অবস্থান কীভাবে পাওয়া যায় তার উদাহরণটি সর্বোত্তম , কারণ এটি আপনার আরও কঠিন সময় পাবে এমন ভাষা।

আরো দেখুন:

  • প্লেয়ারের গেমের ডেটা (সেভ গেমস, কনফিগারেশন)।
  • ভাগ করা গেমের ডেটা (যেমন উচ্চ স্কোর বা সমস্ত কম্পিউটার ব্যবহারকারীর জন্য কনফিগার)।
  • অস্থায়ী গেমের ডেটা (ওরফে ক্যাশে ডিরেক্টরি)।

1
আপনার সম্ভবত সমস্ত উত্তর একটিতে রাখা উচিত, যেহেতু কোনও উত্তরই গ্রহণযোগ্য নয়?
জোলোমন

@ জোলোমন সমস্যাটি হ'ল সমস্ত প্ল্যাটফর্মগুলির সাথে একটি উত্তর খুব বড় হবে বলে আমি মনে করি। বিশেষত যদি আপনি মোবাইল / ট্যাবলেট প্ল্যাটফর্মগুলি যোগ করেন ...
ক্লাইম

এটি লক্ষ্য করার মতো হতে পারে (যেহেতু আরও অনেকে যারা এই মতামতটি ভাগ করে নিতে পারে) যে কমপক্ষে আমি ঘৃণা করি যখন গেমগুলি তাদের সম্মানজনক (ইনস্টল) ডিরেক্টরিগুলিতে না সঞ্চয় করে। আমি গেমগুলি পছন্দ করি যেখানে ইন-গেম ব্যবহারকারীরা ইন-গেম তৈরি করা হয়, এবং আর কোনও লুকানোর প্রয়োজন হয় না: আমি গেমিংয়ের জন্য যে পিসিগুলি ব্যবহার করি তা কখনই ওএস ব্যবহারকারীদের মোটেও মাল্টি-ব্যবহারকারী নয়। অথবা যদি এটি অবশ্যই ব্যবহার করে তবে আমি এমন গেমগুলি পছন্দ করি যা এটি অভ্যন্তরীণভাবে করে। ঘটনাটি নাও হতে পারে তবে: একটি ওএস ব্যবহারকারী = এক টুকরো গেম ব্যবহারকারী আল্টেরেগো ধারণাটিও বিরক্তিকর। নোট আমি একটি উইন্ডোজ গেমার। * ইউনিক্সে এটি আলাদা, স্থির FS ধারণাটি চালিত করে (কোনও ড্রাইভ নেই)
n611x007

@naxa যদি তা আপনাকে "সান্ত্বনা" দিতে পারে তবে আমি এমন একটি গেম তৈরি করছি যা ভিতরে খেলোয়াড়দের অ্যাকাউন্ট পরিচালনা থাকে তবে খেলোয়াড়দের অ্যাকাউন্টটি এখনও ওএস সুরক্ষার কারণে ব্যবহারকারীর অ্যাকাউন্টে সংরক্ষণ করতে হয়। আমি এগুলি ভাগ করে নেওয়া রেপোতেও সঞ্চয় করতে পারি, নিশ্চিত না। এছাড়াও, আমি ব্যবহারকারীদের কোনও এক সময় অনলাইনে ডেটা অনলাইনে রাখার অনুমতি দিতে হবে।
ক্লাইম

3
@ এনএক্সএ সমস্যাটি হ'ল ভিস্তা, উইন্ডোজ 7, ​​উইন্ডোজ 8-এ, যদি না নির্দিষ্টভাবে প্রশাসক হিসাবে চালানো হয় তবে প্রোগ্রামগুলি প্রোগ্রাম ফাইলগুলি \ গেম-ইনস্টল-দির to লিখতে সক্ষম হবে না \ আমি বিশ্বাস করি এটি আরও সাম্প্রতিক লিনাক্স এবং ওএসএক্স সংস্করণগুলিতে সত্য holds
নাট

উত্তর:


23

উইন্ডোজ (এক্সপি এবং নিম্নলিখিত)

উপর ভিত্তি করে:

এই অবস্থানগুলি ধরে নেয় যে উইন্ডোজ সি: ডিস্কে ইনস্টল করা আছে। গেমের নাম বা গেম সংস্থার সাথে আপনার নিজের ডিরেক্টরি যুক্ত করুন তারপরে এই ডিরেক্টরিগুলিতে গেমের নাম।


আপনি যদি উইন্ডো 8 মেট্রো-স্টাইল অ্যাপ্লিকেশন ব্যবহার করেন তবে আপনাকে ডিরেক্টরিতে পৌঁছানোর চেষ্টা না করে একটি নির্দিষ্ট এপিআই ব্যবহার করতে হবে। পড়ুন:


প্লেয়ারের গেমের ডেটা

উইন্ডোজ ভিস্তা এবং নিম্নলিখিত:

সি: \ ব্যবহারকারী \ {ব্যবহারকারী নাম} \ AppData \ রোমিং

উইন্ডোজ এক্সপি:

সি: u নথি এবং সেটিংস {{ব্যবহারকারীর নাম \} অ্যাপ্লিকেশন ডেটা

আপনি APPDATAপরিবেশের পরিবর্তনশীল পেয়ে স্বয়ংক্রিয়ভাবে সঠিক ব্যবহারকারীর নাম-নির্ভর ঠিকানা পেতে পারেন ।

স্ট্যান্ডার্ড সি (সমস্ত সংকলক):

char* appdata = getenv("APPDATA");

ভিজ্যুয়াল স্টুডিও 20xx ( জেনেটভ () সতর্কতা এড়ানো নিরাপদ নয়) এড়ানো - নন মেট্রো স্টাইল:

char *pValue;
size_t len;
errno_t err = _dupenv_s( &pValue, &len, "APPDATA" ); 

ব্যবহারকারীদের বুস্ট করুন : এই মুহুর্তে আমি এই বুস্ট.ফাইলেস্টেমটি লিখি (এটি পরবর্তী সি ++ স্ট্যান্ডার্ডের জন্য প্রস্তাবিত ফাইল সিস্টেম লাইব্রেরির একটি খসড়াও) সঠিক ডিরেক্টরি সরবরাহ করার জন্য কোনও ফাংশন এখনও প্রয়োগ করে না। তবে এর আগেও এ নিয়ে আলোচনা হয়েছে । কিছু পরিবর্তন হলে দয়া করে এই বিভাগটি আপডেট করুন


ভাগ করা গেমের ডেটা

উইন্ডোজ ভিস্তা এবং নিম্নলিখিত:

সি: \ ProgramData

উইন্ডোজ এক্সপি:

সি: u নথি এবং সেটিংস \ সমস্ত ব্যবহারকারী

PROGRAMDATAপরিবেশের পরিবর্তনশীল হয়ে আপনি স্বয়ংক্রিয়ভাবে সঠিক ঠিকানাটি পেতে পারেন ।

স্ট্যান্ডার্ড সি (সমস্ত সংকলক):

char* appdata = getenv("PROGRAMDATA");

ভিজ্যুয়াল স্টুডিও 20xx ( জেনেটভ () সতর্কতা এড়ানো নিরাপদ নয়) এড়ানো - নন মেট্রো স্টাইল:

char *pValue;
size_t len;
errno_t err = _dupenv_s( &pValue, &len, "PROGRAMDATA" ); 

ব্যবহারকারীদের বুস্ট করুন : এই মুহুর্তে আমি এই বুস্ট.ফাইলেস্টেমটি লিখি (এটি পরবর্তী সি ++ স্ট্যান্ডার্ডের জন্য প্রস্তাবিত ফাইল সিস্টেম লাইব্রেরির একটি খসড়াও) সঠিক ডিরেক্টরি সরবরাহ করার জন্য কোনও ফাংশন এখনও প্রয়োগ করে না। তবে এর আগেও এ নিয়ে আলোচনা হয়েছে । কিছু পরিবর্তন হলে দয়া করে এই বিভাগটি আপডেট করুন


অস্থায়ী গেমের ডেটা

উইন্ডোজ ভিস্তা এবং নিম্নলিখিত:

সি: \ ProgramData

উইন্ডোজ এক্সপি:

সি: u নথি এবং সেটিংস {{ব্যবহারকারীর নাম \ স্থানীয় সেটিংস \ টেম্প

TEMPপরিবেশের পরিবর্তনশীল হয়ে আপনি স্বয়ংক্রিয়ভাবে সঠিক ঠিকানাটি পেতে পারেন ।

সি ++ বুস্ট ব্যবহারকারীদের : নেই একটি সহজ ক্রস-প্ল্যাটফর্ম boost.filesystem ফাংশন এই জন্য

namespace bfs = boost::filesystem;
const bfs::path TEMP_DIR = bfs::system_complete( bfs::temp_directory_path() ); // system_complete() call is optional

স্ট্যান্ডার্ড সি (সমস্ত সংকলক):

char* appdata = getenv("TEMP");

ভিজ্যুয়াল স্টুডিও 20xx ( জেনেটভ () সতর্কতা এড়ানো নিরাপদ নয়) এড়ানো - নন মেট্রো স্টাইল:

char *pValue;
size_t len;
errno_t err = _dupenv_s( &pValue, &len, "TEMP" ); 

4
ভিস্তা এবং উপরে, গেমস সেভগুলি বিশেষ "সংরক্ষিত গেমস" ফোল্ডারে রাখা উচিত। আরো এখানে তথ্য: msdn.microsoft.com/en-us/library/windows/desktop/... "FOLDERID_SavedGames" জন্য চেহারা
Durza007

1
বাস্তবে আপনার নিজের পথটি অনুমান করার চেষ্টা করা উচিত নয় বা পরিবেশের পরিবর্তনশীলগুলি থেকে এটি নির্মাণের চেষ্টা করা উচিত নয়। ভিস্তা উপরে অন এবং, আপনি SHGetKnownFolderPath (কল করা উচিত msdn.microsoft.com/en-us/library/bb762188.aspx ) এবং XP তে এবং নীচের ব্যবহার SHGetFolderPath ( msdn.microsoft.com/en-us/library/bb762181.aspx )
কাইলোটন

@ কাইলোটান এবং দুর্জা 77 time, আমি সময়মতো কিছুটা ছোট, এই উত্তরটি প্রয়োজনীয় হিসাবে সম্পাদনা করতে নির্দ্বিধায় এই উত্তর সম্প্রদায় উইকি তৈরি।
ক্লাইম

আমার এই কথাটি জরুরী বলে মনে হয় যে এমএসডিএন ডকুমেন্টেশনগুলি এসএইচগেটকোর্ডফোল্ডারপথটি ব্যবহার করার পরামর্শ দেয় কারণ SHGetFolderPath নতুন পদ্ধতির জন্য কেবল একটি মোড়ক এবং এটি কেবল পশ্চাতে সামঞ্জস্যের জন্য সমর্থিত।
কাগমুশা

16

ম্যাক অপারেটিং সিস্টেম

উপর ভিত্তি করে:

ইউনিক্স-ভিত্তিক ওএসে, ~ডিরেক্টরিটি স্বয়ংক্রিয়ভাবে ব্যবহারকারীর হোম ডিরেক্টরিতে অবস্থিত যেখানে ব্যবহারকারী-নির্দিষ্ট ডেটা অবস্থিত। এর অর্থ হল যে ভাষা যাই হোক না কেন, এই প্ল্যাটফর্মে আপনি ~কোনও ওএস-নির্দিষ্ট ফাংশন ব্যবহার না করে স্বয়ংক্রিয়ভাবে এই ফোল্ডারটি অ্যাক্সেস করতে পারবেন । এছাড়াও লক্ষ্য করুন যে /এটি পুরো সিস্টেমের মূল পাথ, মূল ডিস্কের মূলের পথ নয়।

গেমের নাম বা গেম সংস্থার সাথে আপনার নিজের ডিরেক্টরি যুক্ত করুন তারপরে এই ডিরেক্টরিগুলিতে গেমের নাম।


প্লেয়ারের গেমের ডেটা

অ্যাপলের নির্দেশিকা হ'ল মেঘে স্বয়ংক্রিয়ভাবে সংরক্ষণ করা ফাইলগুলি সেভ এবং কনফিগার করে সেখানে পাওয়া যায়:

~ / ডকুমেন্টস

যাইহোক, এই ফাইলগুলি এখানে সনাক্ত করার জন্য এটি আরও ভাল (এবং প্রায়শই ব্যবহৃত হয়) অনুশীলন:

Library / গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা /

কেবল জানেন যে এই ক্ষেত্রে ফাইলগুলি স্বয়ংক্রিয়ভাবে ক্লাউডে সংরক্ষণ করা হবে না। আপনি যদি প্লেয়ারটি চয়ন করতে চান তবে তাকে বেছে নেওয়ার জন্য প্ল্যাটফর্মের এপিআই ব্যবহার করুন।

ভাগ করা গেমের ডেটা

/ গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা

লক্ষ্য করুন যে এটি নেই ~, এটি ব্যবহারকারীর বাড়ির সাথে নয় বরং সিস্টেমের মূলের সাথে সম্পর্কিত।

অস্থায়ী গেমের ডেটা:

যদি মৃত্যুদণ্ড কার্যকর করার মধ্যে ডেটা রাখার দরকার না থাকে:

/ tmp -র পরিবর্তে

মৃত্যুদণ্ড কার্যকর করার মধ্যে যদি ডেটা রাখা দরকার;

/ গ্রন্থাগার / ক্যাচ (ম্যাকোএসএক্সের জন্য)

সি ++ বুস্ট ব্যবহারকারীদের : নেই একটি সহজ ক্রস-প্ল্যাটফর্ম boost.filesystem ফাংশন এই জন্য

namespace bfs = boost::filesystem;
const bfs::path TEMP_DIR = bfs::system_complete( bfs::temp_directory_path() ); // system_complete() call is optional

4
না কিছু স্থান ~/Documents। এটি ব্যবহারকারীকে সংগঠিত করতে পছন্দ করার জন্য; আপনার ডকুমেন্টের অভ্যন্তরে কোনও নির্দিষ্ট পথে কখনও লেখা উচিত নয়। আপনার গেমটি ~/Library/Application Support/Your App Name/সংরক্ষণ এবং অন্যান্য ব্যবহারকারীর ডেটার জন্য ব্যবহার করা উচিত ।
কেভিন রেড

@ কেভিনআরিড "ব্যবহারকারী কোনও অ্যাপ্লিকেশনটির ইন্টারফেসে যে নথিগুলি তৈরি করে এবং দেখে example উদাহরণস্বরূপ পৃষ্ঠাগুলি, নম্বর এবং কীনোটে নথির ব্রাউজারগুলি নথির ডিরেক্টরিতে সংরক্ষণ করা উচিত the নথির ডিরেক্টরিতে থাকা ফাইলগুলির আর একটি উদাহরণ সেভ করা গেমস আবার, কারণ এগুলি এমন কিছু যা কোনও অ্যাপ্লিকেশন সম্ভাব্যভাবে নির্বাচনের জন্য কোনও ধরণের পদ্ধতি সরবরাহ করতে পারে। " - উত্স: অ্যাপলের সুপারিশ, প্রথম লিঙ্কে। আমি কি কিছু রেখে গেলাম?
ক্লাইম

2
ঐ সব মিলিয়ে জোর হয় নির্বাচন । ব্যবহারকারী তাদের নামকরণ এবং তারা কোথায় যান তা চয়ন করে। ব্যবহারকারীরা যে ফাইলগুলি পরিচালনা করেন না সেগুলি দস্তাবেজগুলিতে স্থাপন করা উচিত নয়, কারণ নথিগুলি ব্যবহারকারীর নাম স্থান, বিকাশকারীর নয়। (অস্বীকৃতি: আমি দাবি করি না যে আমার পরামর্শ অ্যাপলের ডকুমেন্টেশনের সাথে সামঞ্জস্যপূর্ণ। আমি দাবি করি যে এটি ম্যাক অ্যাপ্লিকেশনগুলির মধ্যে নকশাকৃত বেশিরভাগ অনুশীলনকে প্রতিফলিত করে এবং ব্যবহারকারীরা এতে খুশি হবেন।)
কেভিন রেড

এছাড়াও, প্রাক-এক্স ম্যাক ওএসে কোনও "লাইব্রেরি" ডিরেক্টরি ছিল না। লিঙ্কযুক্ত ডকুমেন্টেশনের "(ওএস এক্স)" মন্তব্যগুলি আইওএসের সাথে বৈপরীত্য করছে , যা আইওএস ব্যবহারকারীদের কাছে কোনও ফাইল-সিস্টেম উন্মোচিত না করার কারণে এটি সম্পূর্ণ আলাদা প্রশ্ন।
কেভিন রেড

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

13

লিনাক্স ডেবিয়ান (উবুন্টু, ফেডোরা ইত্যাদি)

উপর ভিত্তি করে:

ইউনিক্স-ভিত্তিক ওএসে, ~ ডিরেক্টরিটি স্বয়ংক্রিয়ভাবে ব্যবহারকারীর হোম ডিরেক্টরিতে অবস্থিত যেখানে ব্যবহারকারী-নির্দিষ্ট ডেটা অবস্থিত। এর অর্থ হল যে ভাষা যাই হোক না কেন, এই প্ল্যাটফর্মে আপনি ওএস-নির্দিষ্ট ফাংশনটি ব্যবহার না করে folder ব্যবহার করে স্বয়ংক্রিয়ভাবে এই ফোল্ডারটি অ্যাক্সেস করতে পারবেন। এছাড়াও লক্ষ করুন যে / পুরো সিস্টেমের মূল পাথ, মূল ডিস্কের মূলের পাথ নয়।

গেমের নাম বা গেম সংস্থার সাথে আপনার নিজের ডিরেক্টরি যুক্ত করুন তারপরে এই ডিরেক্টরিগুলিতে গেমের নাম।


প্লেয়ারের গেমের ডেটা

Ditionতিহ্যগতভাবে, গেমের জন্য অ্যাকোয়ারিয়া এটি হবে:

~ / .Aquaria

নোট করুন যে ডিরেক্টরি এবং ফাইলগুলি সূচিত হয় .তা ডিফল্টরূপে ব্যবহারকারীর কাছে লুকানো থাকবে।

বেশিরভাগ ডেস্কটপগুলি এক্সডিজি স্পেসিফিকেশনটি মেনে চলার চেষ্টা করে , যা সুপারিশ করে

$ XDG_CONFIG_HOME / অ্যাকোয়ারিয়া

অথবা

$ XDG_DATA_HOME / অ্যাকোয়ারিয়া

পরিবর্তে কনফিগারেশন এবং সেভগেমের জন্য।

যদি $XDG_CONFIG_HOMEসেট না করে থাকেন তবে:

~ / .Config / অ্যাকোয়ারিয়া

অথবা

~ / .Local / অ্যাকোয়ারিয়া

এটি বেশিরভাগ ব্যবহারকারীর হোম ডিরেক্টরি খোলার জন্য, পাশাপাশি ব্যবহারকারীরা যদি প্রয়োজনীয় মনে করেন তবে কোনও অ্যাপ্লিকেশনটির একাধিক প্রোফাইল চালানোর অনুমতি দেয়। স্পেসিফিকেশনটিতে অন্যান্য ডেডিকেটেড ব্যবহারকারী-নির্দিষ্ট ডিরেক্টরি রয়েছে।

ভাগ করা গেমের ডেটা

প্রথমেই / var / গেম /

ভাগ করা কনফিগারেশন ফাইলগুলি থাকা উচিত

জন্য / etc / গেম /

অস্থায়ী গেমের ডেটা

/ tmp -র পরিবর্তে


1
বিস্তারিতভাবে বলার জন্য: একটি গেম "অ্যাকোয়ারিয়া" এর গেমের ডেটা ~ / .aquaria (বা ~ / .config / Aquaria) এ রাখা উচিত। এটি / ভারতে একটি বিশ্ব-লিখনযোগ্য ডিরেক্টরি থাকতে ভেবে দেখেছে; এটি হওয়ার সাধারণ উপায়টি হ'ল আপনার গেমের জন্য একটি ব্যবহারকারী অ্যাকাউন্ট তৈরি করা এবং এটিকে একমাত্র অ্যাকাউন্ট তৈরি করা যায় যা সেই ডিরেক্টরিতে লিখতে পারে (এবং তারপরে যখন সাধারণ মানুষ গেমটি খেলছে তখন সেটুইড ব্যবহার করুন)। এটি আপনার চেয়ে বেশি কাজ হতে পারে।
ধেসান

ঠিক আছে, বেশিরভাগ ডেস্কটপগুলি এখন এক্সডিজি স্পেসিফিকেশন মেনে চলার চেষ্টা করে, যা কনফিগারেশনের জন্য এবং for এক্সডিজি_ডাটা_হোম / অ্যাকোয়ারিয়া (বা D / .লোকাল / অ্যাকোয়ারিয়া) প্রস্তাব করে D savegames পরিবর্তে (দেখুন standards.freedesktop.org/basedir-spec/basedir-spec-latest.html )। এটি বেশিরভাগ ব্যবহারকারীর হোম ডিরেক্টরি খোলার জন্য, পাশাপাশি ব্যবহারকারীরা যদি প্রয়োজনীয় মনে করেন তবে কোনও অ্যাপ্লিকেশনটির একাধিক প্রোফাইল চালানোর অনুমতি দেয়। নির্দিষ্টকরণে অন্যান্য নিবেদিত ব্যবহারকারী-নির্দিষ্ট ডিরেক্টরি রয়েছে।
লাইওরি

@ লিওরি আমি উত্তরগুলি আগামীকাল আপডেট করব যদি আমি সময় পাই তবে দেরির জন্য দুঃখিত। আপনি যদি এটি পছন্দ করেন এবং সময় পান তবে দয়া করে তথ্য আপডেট করুন। এটা আমারও উপকারী
ক্লাইম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.