برگزیده های پرشین تولز

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

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
سلام! كمك كنيد لطفا!!!
کد:
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 وجود داره ميگرده ولي اگر يك چنين پوشه اي در مسيرش باشه دچار اررور ميشه
چكار كنم تا از شر اين مشكل خلاص شم و بتونم اسم چنين پوشه هايي رو هم بگيرم
 

m3hrz4d

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

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
خوب یه پوشه با کاراکتر های غیر مجاز مثل > رو که اصلا نمیشه درست کرد..فکر کنم درست متوجه نشدم! میشه دقیق تر توضیح بدی میخوای چیکار کنی؟
سلام دوست عزيز.
چنين پوشه يا فايل هايي رو ميشه روي cd درست كرد.
من يه ايميج با حجم كم پيوست اين پست ميكنم. شما اين كد من رو تست برنيد روش ببينيد ميشه راهكاري براي گرفتن اون پوشه با اسم غير مجاز گرفت!
ايميج ضميمه به حجم 95kb. ايميج از نوع iso ميباشد. در درايو مجازي لود كنيد

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

tank u many many many:)
 

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 استفاده کردی بحثش فرق میکنه..
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
fso نمیشناسه. یه on error resume next بگذار بالای ساب که اررور رو در نظر نگیره.
 

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
درسته. ظاهرا 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 استفاده کردی بحثش فرق میکنه..
بله. اون فولدري كه پيدا ميشه بايد يك سري كار ها -ردو بدل بشه كه با fso كارم راحته. يعني چرا دروغ بگم! فقط يه روش براش بلدمfso
در هر حال از دوستان عزيز كه راهنمايي كردند تشكر ميكنم:)
 

m3hrz4d

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