نمایش نتایج 1 تا 10 از 10

نام تاپیک: چرا FileIOPermission در vista کار نمی کند؟

  1. #1
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    آستارا-تهران
    پست
    357

    Cool چرا FileIOPermission در vista کار نمی کند؟

    با سلام
    من با استفاده از کد زیر می خوام دسترسی سیستم به فایل رو قبل از استفاده از فایل بررسی کنم

    try
    {
    FileIOPermission f = newFileIOPermission(FileIOPermissionAccess.Write, @"c:\a.txt");
    f.Demand();//Exception must rise here
    StreamWriter w = newStreamWriter(@"c:\a.txt");//but Exception rise here
    w.Write(textBox1.Text);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }

    وقتی از شبکه این بررسی رو انجام میدم نتیجه درست برمی گردونه ولی تو ویندوز vista که admin نباشیم درست کار نمی کنه. چرا؟
    البته از System.Security.Permissions; استفاده کنید
    آخرین ویرایش به وسیله mohsen_csharp : سه شنبه 13 مهر 1389 در 08:53 صبح

  2. #2
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: چرا FileIOPermission در vista کار نمی کند؟

    با سلام

    نسخه VS شما چنده ؟

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


  3. #3
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    آستارا-تهران
    پست
    357

    نقل قول: چرا FileIOPermission در vista کار نمی کند؟

    نسخه VS شما چنده ؟
    چه ربطی به VS داره؟ مگه تو VS شما کار نمی کنه؟
    من هم 2005 هم 2008 و هم 2010 دارم.
    تو همش هم نتیجه یکسان هست

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    آستارا-تهران
    پست
    357

    نقل قول: چرا FileIOPermission در vista کار نمی کند؟

    چی ؟؟ فرق نمیکنه؟؟؟

    میشه بپرسم از چه منبعی گفتید که فرقی نداره ما هم بریم شاید چیز جدیدی یاد گرفتیم ؟؟
    با سلام
    من از همون زمان که C#‎‎‎ متولد شده C#‎‎‎ کار می کنم البته میدونم که زمان کمیه.
    با توجه به سواد اندکم تا اینجا اطلاع دارم که تمام کدهای نوشته شده در دات نت 2 در 3.5 هم به درستی کار می کنه. ولی دات نت 2 از دات نت 1.1 حمایت نمی کنه(من خودم یه برنامه با 2003 نوشته بودم که با 2005 بازش کردم run time error داد در حالی که در 2003 کاملا کار می کرد)
    حالا من تو 2008 این برنامه رو نوشتم اگه شما جواب سوال بلدی این دانش رو از شما گدایی می کنم که به ما هم یاد بدی و فرقشو هم تو نسخه های مختلف به ما بگی
    خوشحال میشیم اگه چیز جدیدی از شما اساتید یاد بگیریم !!!

  5. #5
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: چرا FileIOPermission در vista کار نمی کند؟

    خب دوست عزیز شما داری میگی FW2 بعدش میگی ویندوز ویستا. خب ادم یه طوری میشه. اخه مگه تو زمان FW2 ما WV داشتیم؟ تو پلتفرم FW2 نامی از WV برده نشده. دلیلش هم این بود که اصلا WV وجود خارجی نداشت.

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


  6. #6
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    آستارا-تهران
    پست
    357

    نقل قول: چرا FileIOPermission در vista کار نمی کند؟

    خب دوست عزیز شما داری میگی FW2 بعدش میگی ویندوز ویستا. خب ادم یه طوری میشه. اخه مگه تو زمان FW2 ما WV داشتیم؟ تو پلتفرم FW2 نامی از WV برده نشده. دلیلش هم این بود که اصلا WV وجود خارجی نداشت.
    من تو پست آخری عرض کردم که با FW 3.5 کد نوشتم ولی هنوز هم می گم که هیچ فرقی نداره که این کد رو با FW 1.0 یا FW 3.5 بنویسم .
    سوال من اینه که این برنامه تو vista کار نمی کنه مگه vista دات نت رو ساپورت نمی کنه ؟
    شما اگه با FW 1.0 هم کدی بنویسید در vista کاملا به درستی کار می کنه.
    حالا چون تو زمان FW 2.0 ویستا نبوده ، دلیل بر مشکل پیدا کردن این کد تو ویستا نیست.
    طبق گفته های MSDN کلاس FileIOPermission تو همه نسخه های دات نت وجود داره و تو پلت فرم های Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98 کار می کنه.
    حالا مشکل اینجاست که چطوری ازش استفاده کنم که تو ویستا کار کنه؟
    کسی از دوستان تو این زمینه اطلاعی نداره؟

  7. #7
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: چرا FileIOPermission در vista کار نمی کند؟

    والا دوست عزیز نگفتی از اول که با 3.5 FW نوشته و الا اصلا کار به اینجاها نمیکشید.

    ولی به هر حال. کلا ویندوز ویستا یا سون تا ADMIN نباشی اجازه نمیده تو ریشه درایو ثابت مورد نظر فایلی ایجاد کنی.

    این کد رو امتحان کن :




    try
    {
    FileIOPermission f = newFileIOPermission(FileIOPermissionAccess.Write, @"c:\mmd2009\a.txt");
    f.Demand();//Exception must rise here
    StreamWriter w = newStreamWriter(@"c:\mmd2009\a.txt");//but Exception rise here
    w.Write(textBox1.Text);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    در ضمن دوست عزیز ما که با هم درگیری نداریم عزیزم.

    امیدوارم کارت راه بیفته.

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


  8. #8
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    آستارا-تهران
    پست
    357

    نقل قول: چرا FileIOPermission در vista کار نمی کند؟

    با سلام

    دوست من این دقیقا همون کدی که من تو پست اول نوشتم با این تفاوت که مسیر فایل از ریشه یه مرحله پایین تر رفته

    و چون کاربر عادی مجاز به نوشتن تو این مسیر هست دیگه خط f.Demand();//Exception must rise here تولید Exception نمی کنه
    من می خوام که تو همان مسیر ریشه تولید Exception کنه

  9. #9
    کاربر دائمی
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    آستارا-تهران
    پست
    357

    نقل قول: چرا FileIOPermission در vista کار نمی کند؟

    از دوستان کسی جواب سوال رو نمی دونه؟؟؟
    یعنی نمیشه با کدنویسی فهمید که آیا این کاربر به درایو c دسترسی داره یا نه؟

  10. #10
    کاربر تازه وارد آواتار Masiha1986
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    تهران - شهرری
    پست
    36

    نقل قول: چرا FileIOPermission در vista کار نمی کند؟

    با سلام
    کد زیر رو تست کنید:

    private bool hasWriteAccessToFolder(string folderPath)
    {
    try
    {
    // Attempt to get a list of security permissions from the folder.
    // This will raise an exception if the path is read only or do not have access to view the permissions.
    System.Security.AccessControl.DirectorySecurity ds = Directory.GetAccessControl(folderPath);
    return true;
    }
    catch (UnauthorizedAccessException)
    {
    return false;
    }
    }


    موفق باشید.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •