কেন পথে প্রবেশের অনুমতি অস্বীকার করা হচ্ছে?


156

আমি যেখানে আমার ফাইলটি মুছতে চাইছি সেখানে আমার একটি সমস্যা হচ্ছে তবে আমি একটি ব্যতিক্রম পাই।

if (result == "Success")
{
     if (FileUpload.HasFile)
     {
         try
         {
              File.Delete(Request.PhysicalApplicationPath + app_settings.login_images + txtUploadStatus.Text);
              string filename = Path.GetFileName(btnFileUpload.FileName);
              btnFileUpload.SaveAs(Request.PhysicalApplicationPath + app_settings.login_images + filename);
         }
         catch (Exception ex)
         {
               Message(ex.ToString());
         }
      }
}

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

সম্পূর্ণ ব্যতিক্রম বার্তাটি হ'ল:

System.AnuthorisedAccessException: 'C: \ ব্যবহারকারীদের ow gowdyn u ডকুমেন্টস \ ভিজ্যুয়াল স্টুডিও ২০০\ jects প্রকল্পসমূহ \ সংকর \ সংকর \ টেম্প-লজিনিমেজেসস vir enviromeental.jpg' অ্যাক্সেস অস্বীকৃত। সিস্টেম.আইও। ডকুমেন্টস \ ভিজ্যুয়াল স্টুডিও ২০০jects jects প্রকল্পগুলি \ সংকর \ সংকর \ ব্যবহারকারী_নিয়োগসমূহ \ ইমগলোডার_আড্ড_এডিট_বিটি.এক্সএক্সএক্স: লাইন 242

কোন ধারনা?


4
ব্যতিক্রম সম্পর্কে কি পরিষ্কার নয়? অ্যাপ্লিকেশনটি যে অ্যাকাউন্টের অধীনে চলছে সেটির ফাইল / ফোল্ডারে অ্যাক্সেসের সুবিধা নেই।
ওডে

8
ব্যতিক্রম কী বলছে তা আমি বুঝতে পারি। সমস্যাটি হ'ল এই কার্যকারিতাটি এমন কিছু ব্যবহারকারী দ্বারা ব্যবহার করা হয় যাদের সিস্টেম ব্যবহার করে চিত্রগুলি সংশোধন করা দরকার। এর একটি অংশ পুরানো চিত্র মুছে ফেলা এবং একটি নতুন চিত্র সংরক্ষণ করে চিত্রগুলি প্রতিস্থাপন করছে is
নিক গৌদি

ফোল্ডারে আপনার অ্যাক্সেসের অনুমতিগুলি পরীক্ষা করুন। বৈশিষ্ট্য উইন্ডো থেকে সুরক্ষা ট্যাবটি ব্যবহার করে ফোল্ডারে যথাযথ অনুমতি দিন
গ্রট্রোট

6
ব্যতিক্রম মোটেই তথ্যবহুল নয়। এটি আপনাকে বলবে না: উঃ কী অধ্যক্ষটি সংস্থানটি অ্যাক্সেস করার চেষ্টা করছেন বি এর কি অনুমতি প্রয়োজন। এটির জন্য, এটি উইন্ডোজ সিসইন্টার্নাল ইনস্টল করতে এবং পাথ অ্যাক্সেস পর্যবেক্ষণ করতে হবে।
এটিএল_ডিইভি

উত্তর:


184

মতে File.Delete পদ্ধতি ...

একটি UnauthorizedAccessException4 জিনিস মানে এক:

  • আহ্বানকারী প্রয়োজনীয় অনুমতি নেই।
  • ফাইলটি একটি এক্সিকিউটেবল ফাইল যা ব্যবহৃত হয়।
  • পাথ একটি ডিরেক্টরি।
  • পাথ একটি পঠনযোগ্য ফাইল নির্দিষ্ট করে।

76
পাথ একটি ডিরেক্টরি। আমার জন্য বিব্রতকর: /
জি

4
গতকাল আমার মুখোমুখি হয়েছে । আমি এই ambigous ব্যতিক্রম বার্তা :( ঘৃণা
Broken_Window

1
আমি H ঘন্টারও বেশি সময় ধরে লড়াই করে যাচ্ছিলাম এবং আপনার প্রতিক্রিয়াটি দেখার পরে দেখলাম যে পথটি ডিরেক্টরি ছিল ... ধন্যবাদ একটি টন @ ক্র্যাজিটাইম ..
ব্যবহারকারী এম

6
Path is a directory.এই পরামর্শের জন্য ধন্যবাদ :) এটি আমাকে সাহায্য করেছে।
সিড্রন

8
ওহ আমার ... পাথ একটি ডিরেক্টরি। আপনাকে ধন্যবাদ মাইক্রোসফ্ট। এটি বেশ অননুমোদিত অ্যাক্সেস।
সিরিয়াস এম

181

আমারও সমস্যা ছিল, তাই আমি এই পোস্টে হোঁচট খাচ্ছি। আমি কপি / মুছার আগে এবং পরে নিম্নলিখিত কোডের লাইনটি যুক্ত করেছি added

মুছে ফেলা

File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);

কপি

File.Copy(file, dest, true);
File.SetAttributes(dest, FileAttributes.Normal);

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

13
সেটএট্রিবিউটস নরমালটি আমার পক্ষে কৌশলটি ছিল - আমি ফাইল-কপি করার চেষ্টা করছিলাম এবং কেবল পঠনযোগ্য একটি ফাইল ওভাররাইট করলাম ..
টম হান্টার

6
পাথের অ্যাক্সেস অস্বীকার করার প্রস্তাব দেয় না যে ফাইলটি কেবলমাত্র পঠনযোগ্য (যেহেতু আপনি আসলে পাথটিতে অ্যাক্সেস পেয়েছেন!) আমার মতে ত্রুটি বার্তাটি পরিবর্তন করা উচিত। যাইহোক ইঙ্গিত জন্য ধন্যবাদ!
এমবিরোস

1
আমি প্রশাসক হিসাবে প্রোগ্রামটি চালিয়েছি এবং সমস্যাটি শেষ হয়ে গেছে।
সান্টিয়াগো ভিলাফুয়ের্তে 21

5
অনুলিপি অপারেশনের পরে কীভাবে কোনও অ্যাট্রিবিউট সেট করা সহায়তা করে? কপির বিবৃতিতে ইতিমধ্যে প্রোগ্রামটি ক্রাশ হবে না? এটি অনুলিপি অপারেশনের মতো অনুলিপি অপারেশনের আগে হওয়া উচিত?
বিভোর টানওয়ার

31

এটি একটি পুরানো সমস্যা, তবে অনুসন্ধানের সময় আমি এটিতে ছুটে এসেছি। দেখা যাচ্ছে যে আমি SaveAs এর জন্য সংরক্ষণের পথে প্রকৃত ফাইলের নামটি অনুপস্থিত ছিল ...

string uploadPath = Server.MapPath("~/uploads");
file.SaveAs(uploadPath); // BAD
file.SaveAs(Path.Combine(uploadPath, file.FileName)); // GOOD

18

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

আইআইএস সুরক্ষা সম্পর্কে এখানে খুব ভাল বর্ণিত উত্তর দেওয়া আছে

আশাকরি এটা সাহায্য করবে


ধন্যবাদ এটি সাহায্য করেছে .. আইআইএস_আইইউএসআরএস ব্যবহারকারীর জন্য অনুমতি।
টম

13

ভিজ্যুয়াল স্টুডিওতে ডান ক্লিক করুন এবং অ্যাডমিনিস্ট্রেটর হিসাবে রান ক্লিক করুন


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

13

আমি ত্রুটি পেয়েছি কারণ আমি বুঝতে পারি নি যে গন্তব্যটি কোনও ফাইল হওয়া উচিত। দ্বিতীয় প্যারামিটার হিসাবে আমার একটি ফোল্ডার ছিল (যা সেমিডিতে কাজ করে)। এবং আমি পেয়েছি Unhandled Exception: System.UnauthorizedAccessException: Access to the path is denied.কারণ সি # File.Moveএকটি ফাইল চায়, কেবল প্রথম প্যারামিটারের জন্য নয়, তবে দ্বিতীয়টির জন্যও, এবং তাই যদি আপনি দ্বিতীয় প্যারামিটার হিসাবে কোনও ডিরেক্টরি রাখেন, এটি c:\crpযখন আপনার ডিরেক্টরি বলে তখন এটি একটি ফাইল লেখার চেষ্টা করে c:\crp

এটি ভুল হবে File.Move(args[0],"c:\\crp");

সুতরাং, এটি সঠিক হবে File.Move(args[0],"c:\\crp\\a.a");

একই জন্য যায় File.Copy


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

7

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

অথবা আপনি পুরানো স্টাইলে যেতে পারেন এবং কেবল নেটওয়ার্ক পরিষেবায় পরিচয় সেট করতে পারেন এবং নেটওয়ার্ক পরিষেবা ব্যবহারকারীকে এই পথে অ্যাক্সেস দিতে পারেন।


3

আপনি যে ফোল্ডারটি মুছে ফেলার / সংরক্ষণ করার চেষ্টা করছেন সেটির বিশেষাধিকারগুলি পরিবর্তন করতে হবে। ধারণকৃত ফোল্ডারে ডান ক্লিক করুন এবং আপনার অ্যাপ্লিকেশনটির অধীনে চলমান ব্যবহারকারীর অধিকার পরিবর্তন করতে অনুমতি দিতে সুরক্ষা ট্যাব ব্যবহার করুন ।


আপনি ধরে নিচ্ছেন যে তিনি তার মেশিনের প্রশাসক .. এটি যদি কোনও ওয়ার্ক মেশিন হয় এবং তিনি যদি কেবল একজন ব্যবহারকারী হন তবে তারা সম্ভবত কোনও কারণের জন্য অনুমতিগুলি সেট করেছিলেন .. যেহেতু আমরা কেবল
ধরেই রেখেছি

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

1
আমি সবেমাত্র "প্রত্যেকে" ফোল্ডারে সম্পূর্ণ অ্যাক্সেস সহ এবং "ভয়েলি" যুক্ত করেছি
মার্সেলো বারবোসা

3

অপারেটিং সিস্টেম যখন আই / ও ত্রুটি বা একটি নির্দিষ্ট ধরণের সুরক্ষা ত্রুটির কারণে অ্যাক্সেস অস্বীকার করে তখন ছোঁড়া ব্যতিক্রম।

আমি একই জিনিস আঘাত। ফাইলটি লুকিয়ে নেই তা নিশ্চিত করে দেখুন।


3

আমার উইন্ডো পরিষেবাটি ব্যতিক্রম ছোঁড়া শুরু করার সময় আমি এই সমস্যার মুখোমুখিও হয়েছি

System.UnauthorizedAccessException: Access to the path "C:\\Order\\Media
44aa4857-3bac-4a18-a307-820450361662.mp4" is denied.

সমাধান হিসাবে, আমি নীচে স্ক্রিন ক্যাপচার হিসাবে দেখানো হিসাবে আমার পরিষেবার সাথে যুক্ত ব্যবহারকারী অ্যাকাউন্টটি পরীক্ষা করেছিলাম

এখানে চিত্র বর্ণনা লিখুন

সুতরাং আমার ক্ষেত্রে এটি নেটওয়ার্ক সার্ভিস ছিল

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

আরও তথ্যের জন্য দয়া করে নীচের স্ক্রিন ক্যাপচারটি দেখুন

এখানে চিত্র বর্ণনা লিখুন


3

আমার জন্যও একই সমস্যা, আমি ফাইলের পরিবর্তে ফোল্ডারটি নির্দেশ করছিলাম।

সুতরাং পথে নিশ্চিত করুন, পথ + ফাইলের নাম দিন

System.IO.File.WriteAllBytes("path", bytearray);

2

আপনার ফাইলের বৈশিষ্ট্য পরীক্ষা করুন। যদি কেবল পঠনযোগ্য পরীক্ষা করা হয় তবে এটিটি চেক করুন। এটি অননুমোদিতঅ্যাক্সেসএক্সসেপশনটির সাথে আমার ব্যক্তিগত সমস্যা ছিল।


2

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


2

আই / ও ত্রুটি বা সুরক্ষা ত্রুটির কারণে যখন অপারেটিং সিস্টেম অ্যাক্সেস অস্বীকার করে তখন একটি অননুমোদিত অ্যাক্সেসএক্সেপশন ব্যতিক্রম ছুঁড়ে দেওয়া হয়।

যদি আপনি কোনও ফাইল বা রেজিস্ট্রি কী অ্যাক্সেস করার চেষ্টা করছেন তবে নিশ্চিত হয়ে নিন যে এটি কেবল পঠনযোগ্য নয়


2

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

বিটডিফেন্ডারে আপনার অ্যাপ্লিকেশনটিকে অ্যাক্সেস দেওয়ার বিষয়টি নিশ্চিত করুন এবং আবার চেষ্টা করুন।

এই বিটডিফেন্ডার সমর্থন পৃষ্ঠায় আরও কিছু বিশদ পাওয়া যাবে ।


1

একটি শেয়ার্ড সার্ভারে নতুন সরিয়ে নেওয়া ওয়েবসাইটে আমার একই সমস্যা ছিল। ওয়েব হোস্ট প্যানেল (ডটনেটপ্যানেল) এর মাধ্যমে সমাধান করা সত্য "" লেখার অনুমতি অনুমতি দিন "সেট করে। সুতরাং আপনি যদি সার্ভারের কনফিগারেশনটি একবার দেখে নেওয়া সমস্ত কোড পর্যালোচনা করার আগে একটি ভাগ করা সার্ভারে থাকেন এবং আপনাকে অনেক সময় সাশ্রয় করতে পারেন।


1

সচেতন হন যে আপনি যদি নিজের কোড থেকে ভাগ করা ফোল্ডারের পথে পৌঁছানোর চেষ্টা করছেন, তবে আপনাকে কেবল সুরক্ষা ট্যাব থেকে শারীরিক ফোল্ডারে সঠিক অনুমতি দেওয়ার দরকার নেই d শেয়ার ট্যাব মাধ্যমে সংশ্লিষ্ট অ্যাপ পুল ব্যবহারকারীর সাথে আপনাকে ফোল্ডারটি "ভাগ" করতে হবে


1

আমি এই ত্রুটির মুখোমুখি হয়েছি কারণ

কখনও কখনও যখন আমি পথ সঙ্গে ফাইলের নাম এবংCombineFileName = ""

এটা তোলে হয়ে Path Directoryএকটি না fileযা একটি সমস্যা হিসেবে হয় উপরে উল্লিখিত

আপনার জন্য চেক করতে হবে, যাতে FileNameভালো

if(itemUri!="")
        File.Delete(Path.Combine(RemoteDirectoryPath, itemUri));

1

কোনও ফাইল মোছার সময় আমার ঠিক ত্রুটি হয়েছিল। এটি একটি উইন্ডোজ পরিষেবা ছিল যা কোনও সার্ভিস অ্যাকাউন্টের অধীনে চলছে যা ফোল্ডারের পুরো নিয়ন্ত্রণ থাকা সত্ত্বেও একটি ভাগ করা ফোল্ডার থেকে একটি .pdf নথি মুছতে অক্ষম ছিল।

আমার জন্য যা কাজ করেছে তা ভাগ করা ফোল্ডার> উন্নত> ভাগ করুন> যুক্ত করার সুরক্ষা ট্যাবে নেভিগেট করছিল।

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


1

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

  • আপনার ইনস্টলের অবস্থান
  • আপনার AppData অবস্থান
  • ফাইল বা ফোল্ডার পিকারের মাধ্যমে ফাইলগুলি নির্বাচিত
  • আপনার অ্যাপ ম্যানিফেস্টে অনুরোধ করা অবস্থানগুলি

আপনি বিশদ জানতে এখানে আরও পড়তে পারেন => https://docs.microsoft.com/en-us/windows/uwp/files/file-access-perifications


1

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

এখানে চিত্র বর্ণনা লিখুন

যদি এটি আপনাকে কোনও বিজ্ঞপ্তি দেয় তবে আপনি সেখান থেকে এটি পরিচালনা করতে পারেন। আমার ক্ষেত্রে এটি বিজ্ঞপ্তি দেয় নি যা আমি লক্ষ্য করেছি। সুতরাং এখানে কীভাবে প্রোগ্রামটিকে ব্লক করা থেকে নর্টনকে রাখা যায়।

  1. নর্টন খুলুন
  2. ডাউন তীরটি ক্লিক করুন
  3. ইতিহাস ক্লিক করুন
  4. প্রোগ্রাম দ্বারা ক্রিয়াকলাপ সন্ধান করুন
  5. আরও বিকল্প ক্লিক করুন
  6. প্রক্রিয়া বাদ দিন ক্লিক করুন

0

সার্ভারে স্থাপনার পরে এটি করার চেষ্টা করার সময় আমিও একই সমস্যার মুখোমুখি হয়েছিলাম:

dirPath = Server.MapPath(".") + "\\website\\" + strUserName;
if (!Directory.Exists(dirPath))
{
    DirectoryInfo DI = Directory.CreateDirectory(dirPath);
}
string filePath = Server.MapPath(".") + "\\Website\\default.aspx";
File.Copy(filePath, dirPath + "\\default.aspx", true);
File.SetAttributes(dirPath + "\\default.aspx", FileAttributes.Normal);

আমি প্রশাসক সহ অন্যান্য গোষ্ঠীতে আইআইএসে অনুমতি পেয়েছি এবং আমার সমস্যাটি সমাধান হয়ে গেছে।


0

আমি আবিষ্কার করেছি যে এই ত্রুটিটি ডিজাইন মোডের বিপরীতে দেখা দিতে পারে? এক্সিকিউশন মোড ... আপনি যদি এমন একটি ক্লাস সদস্য তৈরি করার মতো কিছু করছেন যা একটি .INI বা .HTM ফাইলে (কনফিগারেশন ফাইল, সহায়তা ফাইল) অ্যাক্সেসের প্রয়োজন হয় তবে আপনি ঘোষণায় আইটেমটি আরম্ভ করতে না পারেন, তবে পরে এটি আরম্ভ করতে পারেন FORM_Load () ইত্যাদিতে ... আপনি যখন আরম্ভ করবেন না ... বিবৃতি যদি কোনও প্রহরী ব্যবহার করুন:

    /// <summary>FORM: BasicApp - Load</summary>
    private void BasicApp_Load(object sender, EventArgs e)
    {
        // Setup Main Form Caption with App Name and Config Control Info
        if (!DesignMode)
        {
            m_Globals = new Globals();
            Text = TGG.GetApplicationConfigInfo();
        }
    }

আপনি যখন ডিজাইন মোডে থাকবেন তখন এটি এমএনভিএস ডিজাইনারকে আইএনআই বা এইচটিএম ফাইল তৈরির চেষ্টা থেকে বিরত রাখবে।


0

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

একটি সহজ System.Threading.Thread.Sleep(500);সমাধান:

void RenameFile(string from, string to)
{
   try
   {   
      System.IO.File.Move(from, to)      
   }   
   catch 
   {  
       System.Threading.Thread.Sleep(500);      
       RenameFile(from, to);      
   }   
}

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

এই কোডটি খুব বিপজ্জনক। এটি RenameFile পদ্ধতি পুনরাবৃত্তি করেই ব্যতিক্রম যাই হোক না কেন! ব্যতিক্রমের কারণ যদি প্রকৃত অনুমোদনের সমস্যা হয় তবে এটি অ্যাপটিকে ক্র্যাশ করতে পারে
হোসেইন শাহদুস্ট

0

আমার বিশেষ ক্ষেত্রে আমি বারবার 10000 ফোল্ডার তৈরি এবং মুছে ফেলছিলাম। আমার কাছে মনে হচ্ছে সমস্যাটি ছিল যে পদ্ধতিটি Directory.Delete(path, true)ফিরে আসার পরেও অন্তর্নিহিত ওএস প্রক্রিয়াটি এখনও ডিস্ক থেকে ফাইলগুলি মুছতে পারে। এবং আমি পুরানোগুলি মোছার সাথে সাথেই যখন নতুন ফোল্ডার তৈরি করা শুরু করছি তখন তাদের কয়েকটি এখনও লক হয়ে গেছে কারণ সেগুলি এখনও সম্পূর্ণ মোছা হয়নি। এবং আমি সিস্টেমটি পেয়ে যাচ্ছি naঅনুষ্ঠিতঅ্যাক্সেসএক্সসেপশন: "পথে অ্যাক্সেস অস্বীকার করা হয়েছে"।

এখানে চিত্র বর্ণনা লিখুন

Thread.Sleep(5000)পরে ব্যবহার করা Directory.Delete(path, true)সেই সমস্যার সমাধান করে। আমি একমত যে এটি নিরাপদ নয় এবং আমি কাউকে এটি ব্যবহার করতে উত্সাহ দিচ্ছি না। আমি আমার উত্তরকে উন্নত করতে এই সমস্যা সমাধানের জন্য আরও ভাল পদ্ধতির পছন্দ করতে চাই। কেন এখন এই ব্যতিক্রম ঘটতে পারে আমি কেবল একটি ধারণা দিচ্ছি।

class Program
{
    private static int numFolders = 10000;
    private static string rootDirectory = "C:\\1";

    static void Main(string[] args)
    {
        if (Directory.Exists(rootDirectory))
        {
            Directory.Delete(rootDirectory, true);
            Thread.Sleep(5000);
        }

        Stopwatch sw = Stopwatch.StartNew();
        CreateFolder();
        long time = sw.ElapsedMilliseconds;

        Console.WriteLine(time);
        Console.ReadLine();
    }

    private static void CreateFolder()
    {
        var one = Directory.CreateDirectory(rootDirectory);

        for (int i = 1; i <= numFolders; i++)
        {
            one.CreateSubdirectory(i.ToString());
        }
    }
}

0

ড্রাইভ লেটারের পরে কোলন (:) অক্ষরটি অনুপস্থিত বা না পাওয়া যায় কিনা তবে প্রথমে পাথটি পরীক্ষা করুন। যদি কোলন অনুপস্থিত থাকে তবে সেই পথটির জন্য অ্যাক্সেস / লেখার অনুমতি দেওয়া হয়েছে কিনা তা আপনি পরীক্ষা করতে পারেন। আমার একই সমস্যা ছিল এবং আমি কেবল করলান, অনুপস্থিতি এবং সমস্ত কিছু ঠিক ছিল না।

C:\folderpath

ভাল কাজ করবে কিন্তু,

C\folderpath .........(missing colon)

আপনাকে অস্বীকার ত্রুটি অ্যাক্সেস দিতে হবে।


0

আমি System.IO.File.OpenWrit (পথ) ব্যবহার করার চেষ্টা করছিলাম

এবং এটি কার্যকর হয়নি কারণ আমি কেবল ওপেনরাইট () কেবল একটি ডিরেক্টরিতে পাড়ি দিচ্ছিলাম তবে এটির জন্য আপনার যে ফাইলটি লিখতে চান তার সমস্ত পথ প্রয়োজন। সুতরাং অননুমোদিত অ্যাক্সেসএক্সসেপশন এড়াতে শেষে ফাইল নাম.একটি এক্সটেনশন সহ একটি সম্পূর্ণ পথ ওপেন রাইটে পাস করা দরকার


0

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

ধন্যবাদ, লক্ষী (বিকাশকারী)


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

0

এই সমস্যাটি সমাধান করার জন্য, আমি ডিবাগিং সিস্টেমের স্কট হ্যানসেলম্যান পদ্ধতির অনুসরণ করি naঅনুত্তরাইজডঅ্যাক্সেসএক্সেপশন (প্রায়শই অনুসরণ করা হয়: পথে অ্যাক্সেস অস্বীকার করা হয়) নিবন্ধ, উদাহরণ সহ কোডটি হ'ল:

class Program
{
    static void Main(string[] args)
    {
        var path = "c:\\temp\\notfound.txt";
        try
        {
            File.Delete(path);
        }
        catch (UnauthorizedAccessException)
        {
            FileAttributes attributes = File.GetAttributes(path);
            if ((attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
            {
                attributes &= ~FileAttributes.ReadOnly;
                File.SetAttributes(path, attributes);
                File.Delete(path);
            }
            else
            {
                throw;
            }
        }
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.