الاخوة الأعزاء
هل توجد طريقة لمعرفة الاسم المختصر للملفات المكون من 8 حروف والخاص بالدوس
الموضوع انى احاول فتح ملفات صور TIF عن طريق Microsoft Office Document Imaging لكن المشكلة وجود مشكلة فى الاسماء الطويلة الخاصة بالويندوز للملفات
هل من حل
الاخوة الأعزاء
هل توجد طريقة لمعرفة الاسم المختصر للملفات المكون من 8 حروف والخاص بالدوس
الموضوع انى احاول فتح ملفات صور TIF عن طريق Microsoft Office Document Imaging لكن المشكلة وجود مشكلة فى الاسماء الطويلة الخاصة بالويندوز للملفات
هل من حل
تم تعديل هذه المشاركة بواسطة essam_ar1 في 5 أكتوبر 2010 في 12:50
الاخ العزيز علاء
شكرا لك على الرد ولكن هل ممكن التوضيح بمثال على الفيجوال فوكس
شكرا لك
مرحبا..
بصراحة كلما قرأت السؤال..أتساءل ما هي الفكرة بالتحديد؟ ولماذا الرجوع للوراء مع الدوس..
اذا كان الموضوع كما فهمته ( التمكن من الوصول للملفات الموجودة في مجلد معين، ضمن آخر وآخر...ضمن Path طويل معين )
فالفوكس برو يتيح لك لك عن طريق وضع الـ Path بين علامتي تنصيص
على سبيل المثال
SET DEFAULT TO "C:\Program Files\MySQL\MySQL Workbench 5.2 OSS\python\site-packages\Crypto\PublicKey"
أما بخصوص أسماء الملفات نفسها فلم ألحظ أي مشاكل بالتعامل مع أسماء الملفات الطويلة
واذا لم يكن ذلك المطلوب، فلعل قليل من التوضيح قد يساعد أكثر
مع التحية
أستغفر الله العظيم و أتوب إليه
المشكلة مع تشغيل الملفات مع أمر RUN
يعنى مثلا علشان افتح ملف ادوب المفروض انى هاكتب الامر التالى
RUN (C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe C:\Documents and Settings\essam\My Documents\Downloads\www.kutub.info_4991.pdf) 0
هنا لايتم تنفيذ الامر الا اذا كتبته كالتالى
RUN (C:\Progra~1\Adobe\Reader~1\Reader\AcroRd~1.exe) 0 مع اسم الملف الذى يجب ان يكون ايضا بدون اسماء طويلة
هى دى المشكلة باختصار
شكرا لك
جرب وضع علامتي التنصيص على النحو التالي :
RUN /n1 ("C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe" "C:\Documents and Settings\essam\My Documents\Downloads\www.kutub.info_4991.pdf")و بامكانك استخدام ShellExecute
على النحو التالي (كل ما عليك هو تغيير اسم الملف واسم المجلد الموجود فيه )
cFileName = "MySql Client-Server appliactions with VFP.PDF" cFilePath = "F:\My......Longlong\Long\LongKman\LongPath\" declare integer ShellExecute ; in SHELL32.dll ; integer nWinHandle,; string cOperation,; string cFileName,; string cParameters,; string cDirectory,; integer nShowWindow return ShellExecute(0,"Open",cFileName , space(0), cFilePath ,1)
أستغفر الله العظيم و أتوب إليه
هو اللى نجح معايا وضع الامر بين علامات التنصيص
بس ما عرفتش استخدم ShellExecute
شكرا لاهتمامك
هذا تعديل بسيط يخص الطريقة الثانية حيث يقوم على اساس فتج الملف بارسال اسمه ودليل موقعه كاملا الى الاجراء OpenThisFile حيث يقوم الاخير باتمام اللازم
كل ما عليك هنا هو تغيير قيمة MyFile
MyFile=GETFILE("PDF")
OR
MyFile="c:\xxx\ccc\aaa\sss\vvv\fff\rrr\FileName.Pdf"
=OpenThisFile(MyFile)
FUNCTION OpenThisFile(lcFileName)
IF VARTYPE(lcFileName) <> "C" OR ISNULL(lcFileName)
RETURN .F.
ENDIF
IF NOT FILE(lcFileName)
RETURN .F.
ENDIF
m.cFileName=JUSTFNAME(lcFileName)
m.cFilePath =ADDBS(JUSTPATH(lcFileName))
DECLARE INTEGER ShellExecute ;
IN SHELL32.DLL ;
INTEGER nWinHandle,;
STRING cOperation,;
STRING cFileName,;
STRING cParameters,;
STRING cDirectory,;
INTEGER nShowWindow
RETURN ShellExecute(0,"Open", m.cFileName , SPACE(0), m.cFilePath ,1)
ENDFUNCأستغفر الله العظيم و أتوب إليه
متشكر جدا جدا
نجحت كده فعلا
انا فعلا عاجز عن الشكر
معلشى يا اخى العزيز
طلب كمان
الامر ده مش شغال على ويندوز 7
لما جربت البرنامج على اجهزة عليها ويندوز 7 لم يعمل
هل يوجد بديل له فى ويندوز 7
شكرا جزيلا لك
منذ فترة لا يوجد اى رد
لعل المانع خير
essam_ar1 كتب:منذ فترة لا يوجد اى رد
لعل المانع خير
شكرا اخي عصام على السؤال،
هل حللت المشكلة، علما بأني أعمل على Windows7 !!
أستغفر الله العظيم و أتوب إليه
حمدا لله على سلامتك ولعل غيبتك تكون خير لك
لا لم يتم حل المشكلة حتى الآن