مشكل در گرفتن نام پوشه هايي كه از كاراكتر هاي غير مجاز در اسمشان استفاده شده

شروع موضوع توسط sylvester ‏28 اکتبر 2007 در انجمن Visual Basic 6

  1. sylvester

    sylvester Registered User

    تاریخ عضویت:
    ‏26 مارس 2007
    نوشته ها:
    497
    تشکر شده:
    61
    محل سکونت:
    ترکیه
    سلام! كمك كنيد لطفا!!!
    کد:
    Dim fso As New FileSystemObject
    Private Sub Dir1_Click()
    Dim q As integer
    q = Dir1.ListIndex
    Text1.Text = fso.GetFolder(Dir1.List(q))
    End Sub
    
    Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
    End Sub
    در اينجا بر روي هر پوشه اي واقع در عنصر dir list box كليك كنيم نامش در textbox مياد.
    ولي اگر اسم يك پوشه مثلا <ahmad> باشه با پيغام مسير پيدا نشد مواجه ميشم.
    برنامه هم طوري هست كه مياد از طريق يه حلقه for next دنبال يك سري پوشه ها با اسم هاي خاص با توجه به متغيري كه با dir1.listcount وجود داره ميگرده ولي اگر يك چنين پوشه اي در مسيرش باشه دچار اررور ميشه
    چكار كنم تا از شر اين مشكل خلاص شم و بتونم اسم چنين پوشه هايي رو هم بگيرم
     
  2. برترین مرکز خرید و فروش وب سایت
  3. m3hrz4d

    m3hrz4d Registered User

    تاریخ عضویت:
    ‏21 سپتامبر 2005
    نوشته ها:
    620
    تشکر شده:
    1
    محل سکونت:
    اصفهان
    خوب یه پوشه با کاراکتر های غیر مجاز مثل > رو که اصلا نمیشه درست کرد..فکر کنم درست متوجه نشدم! میشه دقیق تر توضیح بدی میخوای چیکار کنی؟
     
  4. sylvester

    sylvester Registered User

    تاریخ عضویت:
    ‏26 مارس 2007
    نوشته ها:
    497
    تشکر شده:
    61
    محل سکونت:
    ترکیه
    سلام دوست عزيز.
    چنين پوشه يا فايل هايي رو ميشه روي cd درست كرد.
    من يه ايميج با حجم كم پيوست اين پست ميكنم. شما اين كد من رو تست برنيد روش ببينيد ميشه راهكاري براي گرفتن اون پوشه با اسم غير مجاز گرفت!
    ايميج ضميمه به حجم 95kb. ايميج از نوع iso ميباشد. در درايو مجازي لود كنيد

    http://www.mediafire.com/?5envmuwddn1

    tank u many many many:)
     
  5. m3hrz4d

    m3hrz4d Registered User

    تاریخ عضویت:
    ‏21 سپتامبر 2005
    نوشته ها:
    620
    تشکر شده:
    1
    محل سکونت:
    اصفهان
    درسته. ظاهرا FSO فایل هایی رو که کاراکتر های غیر مجاز توی اسمشون هست رو اصلا در نظر نمیگیره و واسه همین خطای Not Found میده..شما اگه اسم فولدر رو میخوای چرا اصلا از FSO استفاده کردی, این کد هم همون کار رو میکنه!! :

    کد:
    Private Sub Dir1_Click()
    Dim q As Integer
    q = Dir1.ListIndex
    Text1.Text = Dir1.List(q)
    End Sub
    
    Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
    End Sub
    
    یعنی اصلا نیازی به استفاده از GetFolder نیست, ضمن اینکه برای بدست آوردن این لیست میشد از تابع dir هم استفاده کرد...
    اما اگه هدفت کار با یه همچین فولدری هست و واسه همین از GetFolder استفاده کردی بحثش فرق میکنه..
     
  6. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,420
    تشکر شده:
    1,448
    محل سکونت:
    یه خورده اونورتر
    fso نمیشناسه. یه on error resume next بگذار بالای ساب که اررور رو در نظر نگیره.
     
  7. sylvester

    sylvester Registered User

    تاریخ عضویت:
    ‏26 مارس 2007
    نوشته ها:
    497
    تشکر شده:
    61
    محل سکونت:
    ترکیه
    بله. اون فولدري كه پيدا ميشه بايد يك سري كار ها -ردو بدل بشه كه با fso كارم راحته. يعني چرا دروغ بگم! فقط يه روش براش بلدمfso
    در هر حال از دوستان عزيز كه راهنمايي كردند تشكر ميكنم:)
     
  8. خرید بیت کوین
  9. m3hrz4d

    m3hrz4d Registered User

    تاریخ عضویت:
    ‏21 سپتامبر 2005
    نوشته ها:
    620
    تشکر شده:
    1
    محل سکونت:
    اصفهان
    FSO رو معمولا با Script ها مثل Java Script, VBScript یا توی ASP استفاده میکنن ویبی واسه کار با فایل ها و فولدر ها توابعی رو داره که میشه بجای FSO استفاده کرد.اونایی رو هم که نداره میشه از API کمک گرفت.کلا فکر نکنم زیاد وابسته بودن به FSO خوب باشه توی ویبی..
     
عسل طبیعی و گرده گل ایرانیavanak  همکاری در فروش