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

نام تاپیک: نخواندن پوشه d:\System Volume Information درون درایو

  1. #1
    کاربر دائمی آواتار alexmcse
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    شیراز
    پست
    860

    Cool نخواندن پوشه d:\System Volume Information درون درایو

    در درایو مثلا d:\ فولدری بنام d:\System Volume Information
    وجود دارد
    برنامه ای است
    که محتویات فولدر های درایو d:\ را درون یک کمبوباکس قرار میدهد

    موقع run برنامه پیغام زیر را میدهد

    چگونه میتوان کدی نوشت که کامپیوتر این فولدر d:\System Volume Information را نخواند و فولدر بعدی رابخواند
    چگونه میتوان این کار را انجام داد


  2. #2

    نقل قول: نخواندن پوشه d:\System Volume Information درون درایو

    به نظر من مسیر فایلتو کامل تعریف نکردی مثلاً از مسیر زیر باید استفاده کنی :

    string SerarchPath = @"E:\System Valume Information\MyFile.txt";

  3. #3
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: نخواندن پوشه d:\System Volume Information درون درایو

    دوست عزیز,
    من مطمئنم نود درصد کسایی که پست شما رو دیدن تا حالا این مشکل رو برای خودشون حل کردن.
    ولی جواب شما رو نمیدن.من هم نمیدم.
    چون وقتی شما عکس کدت رو میزاری من هم عکس بلد بودنم رو میزارم.
    متن کدتون رو بزارید.

  4. #4
    کاربر دائمی آواتار m0hammad_01
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ایران
    پست
    113

    نقل قول: نخواندن پوشه d:\System Volume Information درون درایو

    سلام
    این پیغامی که میده به خاطر این هست که این پوشه سیستمی هست و توسط ویندوز محافظت میشه و اجازه دسترسی رو بهتون نمیده.
    چیزی که به نظرم میاد اینه که باید این پوشه رو تو کدتون به عنوان اسثنا بیارین که ازش عبور کنه.اگه کد یا راه حلی به ذهنم رسید اینجا میذارم!

  5. #5
    کاربر دائمی آواتار alexmcse
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    شیراز
    پست
    860

    Cool نقل قول: نخواندن پوشه d:\System Volume Information درون درایو

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    دوست عزیز,
    من مطمئنم نود درصد کسایی که پست شما رو دیدن تا حالا این مشکل رو برای خودشون حل کردن.
    ولی جواب شما رو نمیدن.من هم نمیدم.
    چون وقتی شما عکس کدت رو میزاری من هم عکس بلد بودنم رو میزارم.
    متن کدتون رو بزارید.



    کد من اینه

       ArrayList al = new ArrayList();
    private void files(string str)
    {
    string searchpatern = combo_search_patern.Text.Trim ();
    DirectoryInfo dinfo = new DirectoryInfo(str);

    FileInfo[] files = dinfo.GetFiles
    (searchpatern);
    foreach (FileInfo itemf in files)
    {

    listView1.Items.Add(itemf.FullName);
    al.Add(itemf.Name);
    }

    label1.Text = al.Count.ToString();


    }


    public void pathfile()
    {
    DirectoryInfo dinfo = new DirectoryInfo(combo_drive.Text );
    DirectoryInfo[] di = dinfo.GetDirectories();

    FileInfo[] file = dinfo.GetFiles(combo_search_patern.Text);
    foreach (FileInfo item in file)
    {
    listView1.Items.Add(item.FullName);
    }
    foreach (DirectoryInfo item in di)
    {
    string s = combo_drive.Text + "\\" + item.Name;
    files(s);

    }
    }

    private void button1_Click(object sender, EventArgs e)
    {
    listView1.Items.Clear();
    pathfile();
    }



  6. #6
    کاربر دائمی آواتار alexmcse
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    شیراز
    پست
    860

    نقل قول: نخواندن پوشه d:\System Volume Information درون درایو

    نقل قول نوشته شده توسط m0hammad_01 مشاهده تاپیک
    سلام
    این پیغامی که میده به خاطر این هست که این پوشه سیستمی هست و توسط ویندوز محافظت میشه و اجازه دسترسی رو بهتون نمیده.
    چیزی که به نظرم میاد اینه که باید این پوشه رو تو کدتون به عنوان اسثنا بیارین که ازش عبور کنه.اگه کد یا راه حلی به ذهنم رسید اینجا میذارم!
    حق با شماست
    ولی راه حل چیه؟


  7. #7
    کاربر دائمی آواتار m0hammad_01
    تاریخ عضویت
    خرداد 1389
    محل زندگی
    ایران
    پست
    113

    نقل قول: نخواندن پوشه d:\System Volume Information درون درایو

    نقل قول نوشته شده توسط alexmcse مشاهده تاپیک
    ولی راه حل چیه؟
    خودتون کد رو نوشتین بهتر میتونید تغییرش بدین و باهاش بازی کنید.این هم راه حل:
    اونجایی که میخواد فایلهای داخل پوشه مورد نظر رو فراخوانی کنه، بیاین Try - Catch بذارین. اینطوری وقتی به فایلهای مشکل دار رسید، میره تو Catch و در عمل برنامتون ازش عبور میکنه.
    این کد ها شاید کمکتون کنه:
    msdn.microsoft.com/en-us/library/bb513869.aspx
    http://www.daniweb.com/software-deve...lume-is-denied

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

    نقل قول: نخواندن پوشه d:\System Volume Information درون درایو

    من خودم برای دور زدن این مشکل از try / catch استفاده کردم
    هر فولدری که دسترسی بهش ممنوع باشه، به راحتی نادیده گرفته میشه و میره سراغ بعد

  9. #9

    نقل قول: نخواندن پوشه d:\System Volume Information درون درایو

    امتحان بزن
    خودم با اين روش درست كار كرده

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    namespace Archivemultimedia
    {
    public partial class Formin_Auto : Form
    {
    public Formin_Auto()
    {
    InitializeComponent();
    }


    private void Formin_Auto_Load(object sender, EventArgs e)
    {

    insert_drive();
    }
    public void insert_drive()
    {
    DriveInfo[] drive = DriveInfo.GetDrives();
    comboBox_drive.Items.Clear();
    for (int i = 0; i < drive.Length ; i++)
    {
    if (drive[i].IsReady)
    comboBox_drive.Items.Add(drive[i]);

    }
    }
    private void but_add_Click(object sender, EventArgs e)
    {
    if (comboBox_drive.SelectedIndex != -1)
    {

    DirectoryInfo D_info = new DirectoryInfo(comboBox_drive.Text);
    search_drive( D_info.Root);
    }
    }
    private void search_drive( FileSystemInfo fSysInfo)
    {

    DirectoryInfo dInfo;
    dInfo = new DirectoryInfo(fSysInfo.FullName);

    FileSystemInfo[] fileSysInfo = dInfo.GetFileSystemInfos();

    foreach (FileSystemInfo fsi in fileSysInfo)
    {
    Application.DoEvents();
    //if is file
    if((fsi.Attributes & FileAttributes.Archive )== FileAttributes.Archive )
    {
    //كاري كه ميخواي انجام بده
    }
    //if is directory
    if ((fsi.Attributes & FileAttributes.Directory) ==
    FileAttributes.Directory)
    {
    if ((fsi.Name != "System Volume Information") && (fsi.Name != "$RECYCLE.BIN"))
    search_drive( fsi);

    }

    }
    //--------------------

    break;



    }

    }
    }

تاپیک های مشابه

  1. سوال: ساختن یک فلدر با خصوصیات system volume information
    نوشته شده توسط mahdisaidi در بخش C#‎‎
    پاسخ: 0
    آخرین پست: شنبه 31 اردیبهشت 1390, 08:33 صبح
  2. سوال: کپی در System Volume Information
    نوشته شده توسط iltsaetsi در بخش برنامه نویسی در 6 VB
    پاسخ: 6
    آخرین پست: دوشنبه 29 شهریور 1389, 01:14 صبح
  3. سوال: گرفتن لیست تمام فایل های درون درایو یا پوشه
    نوشته شده توسط jamalbahmani در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: یک شنبه 10 آبان 1388, 06:51 صبح

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

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