سلام
خسته نباشيد
من اگه يه فايل با نام 1223334444 داشته باشم براي کوپي کردن اون فايل از جايي به جاي ديگر از اين دستور استفاده مي کنیم
Dim a As New FileSystemObject
Dim aa As String
Private Sub Command1_Click()
a.CopyFile "aa", "C:\Documents and Settings\nima\Start Menu\Programs\Startup", True
End Sub
Private Sub Form_Load()
aa = a.GetAbsolutePathName(1223334444)
End Sub
روش کار اينجوري که اول مسير پوشه زماني بارگذاري فرم در داخل متغيير آآ ذخيره مي شه و سپس با کليک بر روي کامند از دستور جديدي براي کوپي در مسير معيين استفاده مي کنيم اما:
مشکل اينجاست که مي گه اين مسيري که مي خواهيد ازش فايل رو انتقال بديد وجود ندارد(خطاي 76) اگه مي شه کمکم کنيد تا اين مسئله رو حل کنم
خدا حافظ
عنوان تاپیک رو درست انتخاب کنید
سلام
خوب راست میگه !
چون متغییر aa رو داخل کوتیشن (") قرار دادی در نتیجه ویژوال بیسیک (حتی زبان های دیگر) این aa رو رشته شناسایی می کنند نه متغییر.
پس کوتیشن های دو طرف aa رو بردار
موفق باشی
سلام
خسته نباشيد
دستتون درد نکنه,اشکال من کوتیشن نبود.اشکال اصلی اینه که وقتی با متد GetAbsolutePathName دنبال فایلی به اسم1223334444 می گرده آدرس یه جای دیگه رو می ده و خطای "File not found" رو می ده آیا روشی دیگر وجود دارد که بفهمیم فایل مربوط کجاست و یک short cut از فایلمون رو در مقصد بریزیم.
ممنون می شم که روشی برام ارائه بدید.البته خودم یه روشی رو در نظر گرفتم که با استفاده از متد show open و سپس از طریق file name مسیر فال رو پیدا می کنیم و به برنامه می دیم تا یه کوپی از برنامه(من روش کوپی گرفتن از طریق وی بی رو بلدم اما روش گرفتن short cutاز طریق وی بی رو بلد نیستم)((فرق این دو اینکه در کوپی گرفتن فایل از طریقCopy File فایل کوپی شده حجمی برابر خود فایل اصلی رو داره اما در روش short cut که Fsoهم نداره فقط یه مسیر میانبر برای برنامه درست می شه)))رو بگیریم اما این روشی با دخالت کاربر انجام می شه و من می خواهم این کار اتوماتیک انجام شود.
خدا حافظ
بله از تابع
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
استفاده کنین
و تابع
Private Declare Function SHFileOperation Lib "shell32.dll" Alias " SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
و تابع
Private Declare Function fCreateShellLink Lib "vb6stkit.dll" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArguments As String, ByVal fPrivate As Long, ByVal sParent As String) As Long
سلام
می شه یه مثال بزنید یا روش استفادش رو بگید.
من کار با توابع API رو بلد نیستم
ممنون
خدا حافظ
سلام
شما يه نگاه ديگه به دستورات بنداز
Dim a As New FileSystemObject يه متغيير از نوعFSO
a.CopyFile "aa", "C:\Documents and Settings\nima\Start Menu\Programs\Startup", True يکي از متدهاي FSO
aa = a.GetAbsolutePathName(1223334444) يکي ديگه از متدهاي FSO
اگه هم فکر مي کنيد من اين سوال رو به خاطر اشتباه در قرار دادن کوتيشن مطرح کردم اشتباه کرديد مشکل من اين بود:
وقتي مسير فايل رو( "1223334444 \F") مي گرفتي مسير ديگه اي("1223334444\F:\Microsoft Visual Studio\VB98") رو مي داد
اگه هم من اشتباه کردم:خيلي ببخشيد عذر مي خوام
خدا حافظ
Dim a As New FileSystemObject
Dim aa As String
Private Sub Command1_Click()
'a.CopyFile "aa", "C:\Documents and Settings\nima\Start Menu\Programs\Startup", True
End Sub
Private Sub Form_Load()
aa = a.GetAbsolutePathName(1223334444)
Form1.Caption = aa
End Sub
سلام
مثل اینکه دستورGetAbsolutePathName مسیر نصب vb رو میده برای بدست اوردن مسیر جاری از دستورApp.Path استفاده نمایید
Dim a As New FileSystemObject
Dim aa As String
Private Sub Command1_Click()
a.CopyFile Trim(aa), "f:\an\1223334444.txt", True
End Sub
Private Sub Form_Load()
aa = App.Path & "\" & "1223334444.txt"
End Sub
این هم کد اصلاح شده شما موفق باشید
سلام
دستت درد نکنه ولي بازم همون مشکل قبيلي پيش اومد.
البته قابل ذکر که من خودم همين برنامه رو ساختم. اما مشکل من اينه که من مي خوام کاربر فقط اسم رو وارد کنه و بعد کار انجام بشه نه اينکه به روش زير انجام بشه:
Dim a As New FileSystemObject
Const b As String = "C:\Documents and Settings\nima\Start Menu\Programs\Startup\"
Dim c As String
Private Sub Command1_Click()
CommonDialog1.fliter = "All File (*.*)|*.*|"
CommonDialog1.ShowOpen
c = CommonDialog1.FileName
Text1.Text = c
If c <> "" Then Command2.Enabled = True
End Sub
Private Sub Command2_Click()
a.CopyFile c, b
MsgBox "Finish"
End Sub
Private Sub Command3_Click()
End
End Sub
در ضمن مي خواستم بدونم اگه دوتا فايل با يه اسم وجود داشته باشه چه اتفاقي مي افته.
ممنون خدا حافظ
سلام مشکل شما برمیگرده به
1 عدم استفاده از پسوند فایلهاتون
2 عدم استفاده از دستور trim
و گرنه با یک تکس باکس مشکلتون حل میشه
سلام
ببخشید که اینقدر دیر دارم این موضوع رو ادامه می دم آخه سیستم رو fdisk کرده بودم خوب بگذریم
اگه کمک کنید و:
روش بدست اوردن مسیر فایلی که نصب می شه(فکر کنم با توابع API بود اما من بلد نیستم)رو به بنده آموزش بدبن ممنون می شم .
خدا حافظ