PDA

View Full Version : سوال: پاک کردن فایل هایی که نام فارسی دارند



programmermp
شنبه 21 خرداد 1390, 13:08 عصر
سلام وقت بخیر
پس از کلی جستجو در سایت و اینترنت به هیچ نتیجه ای نرسیدم

با چه کدی می شه از طریق اکسس، یک فایل که نامی فارسی دارد رو حذف کرد، مثلا من می خوام این فایل رو پاک کنم


c:\فایل1.accdb

متاسفانه با دستوراتی مثل dir یا از طریق filesystemobject نمی شه با فایلهایی که نام فارسی دارند کاری انجام داد، یعنی من نتونستم این کار رو بکنم

لطفا راهنمایی کنید-سئوالم فوریه
با تشکر فراوان

Zero Defect
شنبه 21 خرداد 1390, 15:28 عصر
سلام


kill "c:\فایل1.accdb"

موفق باشيد

programmermp
شنبه 21 خرداد 1390, 17:06 عصر
سلام


kill "c:\فایل1.accdb"

موفق باشيد
سلام ممنون به خاطر پاسختون
اما این دستور و دستور dir و دستورات مربوط به کلاس filesystemobject رو اگر برای فایلی که نام فارسی داره استفاده کنم پیام خطای File not found رو می ده - با حرفهای ی و ک که هم عربی هست هم فارسی مشکل داره
لطفا راهنمایی کنید
با تشکر فراوان

mazoolagh
شنبه 21 خرداد 1390, 21:07 عصر
برای "ی" و "ک" هر دو حالتشون رو چک کنین

Zero Defect
شنبه 21 خرداد 1390, 22:07 عصر
سلام

حق با شماست خطا میده

ولی موردی که جالبه وقتی که پاسخ اول رو براتون ارسال کردم با سیستمم توی شرکت بود و هیچ خطایی هم صادر نشد ولی الان که تست کردم در منزل با مشکل مواجه شده و خطا میده !؟

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

با تمام این اوصاف اگر به راه حلی دست پیدا کردم براتون در همین جا درج میکنم , اگر هم نه که ...

موفق باشید

programmermp
شنبه 21 خرداد 1390, 22:14 عصر
برای "ی" و "ک" هر دو حالتشون رو چک کنین

ممنون از شما
ولی چطوری این کارو کنم؟

mazoolagh
شنبه 21 خرداد 1390, 22:14 عصر
یعنی کلا با اسم فارسی مشکل داره؟

programmermp
شنبه 21 خرداد 1390, 22:25 عصر
یعنی کلا با اسم فارسی مشکل داره؟
بله البته همانطور که گفتم با بعضی حروف فارسی مشکل داره مثل ی و ک

programmermp
دوشنبه 23 خرداد 1390, 21:47 عصر
سلام
دوستان لطفا کمک کنید سئوالم فوریه
با تشکر فراوان

mazoolagh
دوشنبه 23 خرداد 1390, 22:08 عصر
بله البته همانطور که گفتم با بعضی حروف فارسی مشکل داره مثل ی و ک

پس با اسامی فارسی بطور مطلق مشکل نداره - این مورد حروف "ی" و "ک" که اشاره کردین به صفحه کلید فارسی و عربی برمیگرده که کدهای مختلفی برای این دو حرف استفاده میکنن.
برای حرف "ی" کدهای 1610 و 1740 رو داریم (بسته به نوع صفحه کلید) و برای حرف "ک" هم کدهای 1603 و 1705 .
کافی هست قبل از اجرای دستور حذف با دستور REPLACE حالتهای مختلف رو برای اسم فایل چک کنین. اگر هم نمیخواین که پیغام خطا ظاهر بشه میتونین از دستور ON ERROR RESUME NEXT استفاده کنین و یا قبل از حذف اول با DIR وجود فایل رو چک کنین.

programmermp
دوشنبه 23 خرداد 1390, 23:30 عصر
پس با اسامی فارسی بطور مطلق مشکل نداره - این مورد حروف "ی" و "ک" که اشاره کردین به صفحه کلید فارسی و عربی برمیگرده که کدهای مختلفی برای این دو حرف استفاده میکنن.
برای حرف "ی" کدهای 1610 و 1740 رو داریم (بسته به نوع صفحه کلید) و برای حرف "ک" هم کدهای 1603 و 1705 .
کافی هست قبل از اجرای دستور حذف با دستور REPLACE حالتهای مختلف رو برای اسم فایل چک کنین. اگر هم نمیخواین که پیغام خطا ظاهر بشه میتونین از دستور ON ERROR RESUME NEXT استفاده کنین و یا قبل از حذف اول با DIR وجود فایل رو چک کنین.

سلام
ضمن تشکر از پاسختون اما متاسفانه باز هم جواب نداد. کد زیر رو با فرض اینکه اسم فایل موردنظر تیر باشه و در درایو c هم باشه در نظر بگیرد


Dim str1, str2, str3, str4, stt As String
stt = "تیر"
str3 = ChrW(1740)
str4 = ChrW(1610)
str1 = Replace(stt, str3, str4)
str2 = Replace(stt, str4, str3)
If Dir("c:\" + str1 + ".accdb") <> "" Then MsgBox ("11111")
If Dir("c:\" + str2 + ".accdb") <> "" Then MsgBox ("22222")

ولی باز فایل رو پیدا نمی کنه
در ضمن از chrw برای بدست اوردن حرف ی در هر دو حالت عربی و فارسی استفاده کردم ولی نکته جالب اینه که در هر دو حالت یک کاراکتر رو بر می گردونه و اون هم حرف ی عربی هست (ی که زیرش 2 تا نقطه داره) !!!! فکر کنم بخاطر همین باشه که فایل رو نمی تونه پیدا کنه چون با هر دو کد اسکی یک حرف ی تولید می کنه
چطوری می شه این مشکل رو حل کرد؟

نمی دونم چی کار می شه کرد لطفا راهنمایی کنید
با تشکر

جعفر88
سه شنبه 24 خرداد 1390, 14:04 عصر
سلام
اگه ميشه حرف ياي موجود در نام فايل مبدا تون (همچنين بقيه حروف مشكلدارتون)رو در يك فايل متني كپي كنيد و از اونا تو كد استفاده كنين در ضمن دو فايل كتابخانه براي طرح صفحه كليد فارسي براتون پيوست مي كنم كه مي تونيد اونارو در پوشه system32 ويندوز بريزيد كه فكر مي كنم شكل و طرح (layout) حروف مشكلدارتون را بتونه عوض كنه .

programmermp
سه شنبه 24 خرداد 1390, 15:17 عصر
سلام
اگه ميشه حرف ياي موجود در نام فايل مبدا تون (همچنين بقيه حروف مشكلدارتون)رو در يك فايل متني كپي كنيد و از اونا تو كد استفاده كنين در ضمن دو فايل كتابخانه براي طرح صفحه كليد فارسي براتون پيوست مي كنم كه مي تونيد اونارو در پوشه system32 ويندوز بريزيد كه فكر مي كنم شكل و طرح (layout) حروف مشكلدارتون را بتونه عوض كنه .
سلام
این فایلهایی که زحمت کشیدید ضمیمه کردید رو همینطوری فقط بزارم تو پوشه ای که گفتید؟!!! بعد چطوری ازشون استفاده کنم یا اکسس یا ویندوز بدونه که باید استفاده کنه؟
با تشکر

جعفر88
چهارشنبه 25 خرداد 1390, 14:04 عصر
سلام
مراحل دقيق يادم نيست ولي براي معرفي فايلهاي فوق به ويندوز اونا رو تو پوشه dllcache نيز بريزيد .