View Full Version : سوال: آیا راهی برای بدست آوردن نام داسی شاخه بیش از 8 کارکتری هست؟
mbshareat
جمعه 10 تیر 1390, 09:59 صبح
سلام و عیدتون(دیروز!) مبارک:قلب:
من تو برنامم فایلی که در محیط داس تایپ شده به کاربر نشون میدم.:خجالت:
تو برنامم باید به کاربر اجازه بدم فایل رو ویرایش کنه برای این کار از ShellExecuteEx استفاده می کنم تا اون ویرایشگر تحت داس رو با نام فایلی که می خوام ویرایش بشه اجرا کنم.
برای این کار نام فایل رو به عنوان پارامتر خط داس به ویرایشگر پاس می کنم.
نام فایلهایم همیشه مطابق استاندارد داسه اما نام شاخه بستگی داره به شاخه ای که برنامم تز اونجا اجرا میشه؛ بنابر این اگه نام شاخه بلند باشه (نمی دونم وجود کارکتر Space هم به تنهایی مشکل ساز هست یانه)برنامه ویرایشگر نمی تونه فایل رو باز کنه.
آیا راهی هست که بتونم به نام 8 کارکتری شاخه دست پیدا کنم؟:گیج:
loo30fer
جمعه 10 تیر 1390, 10:07 صبح
نمی دونم وجود کارکتر Space هم به تنهایی مشکل ساز هست یانه
بله دوست عزیز منم قبلا آدرس فایلها رو به داس میدادم ولی چون بین اسمها Space داشت اون فایلها رو اجرا نمیکرد برای همین مجبور شدم اینطوری عمل کنم تا به مشکل برنخورم.
نمونه :
"C:\File 1.exe"
mbshareat
جمعه 10 تیر 1390, 10:24 صبح
سلام علیکم:قلب:
آقا خیلی زود جواب دادین ولی کاش مفصل تر جواب می دادین!:متعجب:
اون چیزی که من می خوام چیزی مثل این دستور داسیه :
C:\Bagher Prgs\Delphi.Prj\Tree\Fed2.exe C:\Bagher Prgs\Delphi.Prj\Tree\G01\Bagher.T هستش.
این رو هم بگم که تو چنین آدرسی ویرایشگر درست جواب نمی داد ولی وقتی برنامه و فایل داس رو به شاخه ای بردم که از نظر داس مشکل نام گذاری نداشت، مشکل حل شد.
mehdi.mousavi
جمعه 10 تیر 1390, 10:31 صبح
سلام آیا راهی برای بدست آوردن نام داسی شاخه بیش از 8 کارکتری هست؟
سلام.
اگر اسم فایل بر اساس نامگذاری 8.3 رو میخواهید، می تونید از تابع GetShortPathName (http://msdn.microsoft.com/en-us/library/aa364989%28v=vs.85%29.aspx) استفاده کنید.
موفق باشید.
loo30fer
جمعه 10 تیر 1390, 10:59 صبح
سلام علیکم:قلب:
آقا خیلی زود جواب دادین ولی کاش مفصل تر جواب می دادین!:متعجب:
اون چیزی که من می خوام چیزی مثل این دستور داسیه :
C:\Bagher Prgs\Delphi.Prj\Tree\Fed2.exe C:\Bagher Prgs\Delphi.Prj\Tree\G01\Bagher.T هستش.
این رو هم بگم که تو چنین آدرسی ویرایشگر درست جواب نمی داد ولی وقتی برنامه و فایل داس رو به شاخه ای بردم که از نظر داس مشکل نام گذاری نداشت، مشکل حل شد. به این شکل که گذاشتم روش صحیحش فکر کنم قابل فهم باشه , در کل باید آدرس و نامها رو بین این دو کارکتر قرار بدین ""
"C:\Bagher Prgs\Delphi.Prj\Tree\Fed2.exe C:\Bagher Prgs\Delphi.Prj\Tree\G01\Bagher.T"
mbshareat
شنبه 11 تیر 1390, 00:09 صبح
سلام علیکم
جناب loo30fer !
".." رو توی VB به کار می بردم اما تو دلفی از '..' استفاده میشه.در ضمن منظورم همون بود که جناب mehdi.mousavi فرمودند.از لطف شما هم ممنونم.
یوسف زالی
شنبه 11 تیر 1390, 08:57 صبح
سلام.
یه راه دیگه هم داره.
می تونید تبدیل نام انجام بدید و متناظر کنید به اسامی 8 کاراکتری.
مثلا Program Files میشه Progra~1.
SAASTN
یک شنبه 12 تیر 1390, 12:59 عصر
".." رو توی VB به کار می بردم اما تو دلفی از '..' استفاده میشه
کسایی که با دلفی کار می کنن تو ShowMessage('Hello World!'); اینو یاد می گیرن.:چشمک:
منظور فراخونی مثلا ShellExecute به این صورت هست:
ShellExecute(0, 'Open', '"C:\Bagher Prgs\Delphi.Prj\Tree\Fed2.exe"',
'"C:\Bagher Prgs\Delphi.Prj\Tree\G01\Bagher.T"', nil, SW_SHOWNORMAL)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.