سؤال

أحاول حلقة من خلال دليل معين للعثور على أحدث ملف كسف تحميلها.لسبب ما وظيفة دير بلدي لن تجد أي ملف حتى لو كان الملف موجود.أنا لست على دراية تماما مع فبا لذلك أنا ربما قد يكون في عداد المفقودين نوعا من الإشارة لأداء وظيفة دير ، ولكن لا أستطيع العثور على أي شيء على الانترنت أن يقول لي أنا بحاجة إلى.جميع الأمثلة والمنتديات تستخدم دير مثلما أفعل ، ولكن لا أستطيع الحصول على الألغام للعمل.هنا هو رمز ، من فضلك قل لي إذا كنت تستطيع أن ترى ما أفعله خطأ:

Public Function Get_File() as string
   Dim filePath As String

   ChDir ("..")
   filePath = CurDir
   'Goes back to Documents directory to be in same directory as macro
   ChDir (filePath & "\Documents")
   filePath = filePath & "\Downloads\test.txt" 
   filePath = getLatestFile(filePath)

   Get_File = filePath
End Function

Public Function getLatestFile(pathToFile As String) As String
   Dim StrFile As String
   Dim lastMod As Variant
   Dim nextMod As Variant
   Dim lastFileName As String

   StrFile = Dir(pathToFile)
   lastFileName = StrFile
   lastMod = FileDateTime(StrFile)
   While Len(StrFile) > 0
       Debug.Print StrFile
       StrFile = Dir
       nextMod = FileDateTime(StrFile)
       If nextMod > lastMod Then
           lastFileName = StrFile
           lastMod = nextMod
       End If
   Wend

   getLatestFile = lastFileName
End Function

الاختبار.ملف تكست في ملف التحميل الخاص بي وسلسلة فيليباث يطبع ليكون المسار الصحيح ، ولكن أظل الحصول على خطأ تفيد أنه لا يمكن العثور على الملف.فشل في أول استخدام دير (باثوفيل).أي مساعدة سيكون موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

Dir() إرجاع جزء اسم الملف من المسار فقط ، أي أنه لا يعيد جزء المجلد.على سبيل المثال,

Dir("C:\MyPath\MyFile.txt")

المرتجعات MyFile.txt لا C:\MyPath\MyFile.txt

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top