كپي فايل

vahid1352

Active Member
سلام به دوستان
عزيزان در اين برنامه پيوستي چگونه مي توان فايل انتخاب شده را به درايو ديگري كپي كرد لطفا مرا راهنمايي كنيد
ممنونم
 

پیوست ها

  • Searcher.rar
    1.8 کیلوبایت · بازدیدها: 20

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
شما باید کد مورد نظرتون رو در قسمت Double Click یا On Selection لیست باکس بنویسید
خود مثال یه دستور رو در رویداد دابل کلیک لیست باکس گذاشته که در صورت موافقت کاربر فایل انتخابی رو باز میکنه
حالا شما میتونید از دستور SysCommand برای کپی کردن فایل انتخابی به محلی دیگر استفاده کنید
 

vahid1352

Active Member
باتشكر از آقاي nevercom ميشه تغييرات را در برنامه بدين وبرام بفرستين چون من مبتدي هستم ونتونستم قبلا از زحمات شما تشكر مي كنم
 

vahid1352

Active Member
باتشكر از آقاي nevercom دستتون درد نكنه اگه ميشه كاري بكنيد كه فايل انتخابي با همون نام در يكي از درايوهاي مشخص بدون پرسيدن محل ذخيره سازي ونام فايل ذخيره بشه خيلي ممنون
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
سلام
این کدی هست که در مثال قبل من براتون نوشتم:
کد:
[FONT=Courier New][SIZE=2][color=#000090][b]ListBoxGetSelectedItems[/b][/color]("DetectedFiles","SelItem$,SelNum$,|,SelCount") 
Len = [color=#000090][b]LEN[/b][/color](SelItem$)-[color=#ff0000]1[/color] 
SelFile$ = [color=#000090][b]StrCopy[/b][/color](SelItem$,[color=#ff0000]1[/color],Len) 
Ext$ = [color=#800000]'*'[/color] + [color=#000090][b]ExtractExt[/b][/color](SelFile$) 
[color=#000090][b]SaveFile[/b][/color]("All Files|*.*||","Ext$") 
[color=#0000FF]If[/color] (OpenFile$ <> [color=#800000]''[/color]) [color=#0000FF]Then[/color] 
  [color=#000090][b]SysCommand[/b][/color]("CopyFile","SelFile$,OpenFile$") 
  text$ = OpenFile$ + [color=#000090][b]CHR[/b][/color]([color=#ff0000]13[/color])+[color=#000090][b]CHR[/b][/color]([color=#ff0000]10[/color])+[color=#000090][b]CHR[/b][/color]([color=#ff0000]13[/color])+[color=#000090][b]CHR[/b][/color]([color=#ff0000]10[/color]) + [color=#800000]'Do you want to open it ?'[/color] 
  flag = [color=#ff0000]32[/color] + [color=#ff0000]4[/color] + [color=#ff0000]0[/color] + [color=#ff0000]0[/color] + [color=#ff0000]0[/color] 
  param$ = text$ + [color=#800000]','[/color] + [color=#000090][b]CHAR[/b][/color](flag) 
  [color=#000090][b]MessageEx[/b][/color]("File Path","param$") 
  [color=#0000FF]If[/color] ([color=#0000FF]CBK_MsgEx[/color] = [color=#ff0000]6[/color]) [color=#0000FF]Then[/color] 
    [color=#000090][b]Run[/b][/color]("OpenFile$","") 
  [color=#0000FF]End[/color] 
[color=#0000FF]Else[/color] 
  [color=#000090][b]Message[/b][/color]("You must select a filename, Copying Canceled.","") 
[color=#0000FF]End[/color][/SIZE][/FONT]

حالا شما برای اینکه تو این کد هیچ سوالی پرسیده نشه و فایل به مقصد مورد نظر کپی بشه کافیه بجای پرسیدن محل کپی از کاربر که در متغیر $OpenFile ذخیره میشه، آدرس محل ذخیره سازی رو خودتون از قبل مشخص کنید و در یک متغیر ذخیره کنید
برای بدست آوردن نام و پسوند فایل هم از دستورات ()ExtractExt و ()ExtractName استفاده کنید.
من کد بالا رو براتون تغییر دادم ضمن اینکه تغییرات به گونه ای انجام شده که اگه چندتا فایل با هم رو در لیست باکس انتخاب کنید، همشون به محل موردنظر کپی میشن:
کد:
[FONT=Courier New][SIZE=2][color=#000090][b]ListBoxGetSelectedItems[/b][/color]("DetectedFiles","SelItem$,SelNum$,|,SelCount") 
DestinationDrive$ = [color=#800000]'D:'[/color] 
[color=#0000FF]For[/color] i = [color=#ff0000]1[/color] [color=#0000FF]To[/color] SelCount 
  SelFile$ = [color=#000090][b]GetArrayItem[/b][/color](SelItem$,|,i) 
  FileName$ = [color=#000090][b]ExtractName[/b][/color](SelFile$) + [color=#000090][b]ExtractExt[/b][/color](SelFile$) 
  Destination$ = DestinationDrive$ + [color=#800000]'\\'[/color] + FileName$ 
  [color=#000090][b]SysCommand[/b][/color]("CopyFile","SelFile$,Destination$") 
[color=#0000FF]Next[/color] i 
Text$ = [color=#800000]'Done!'[/color] + [color=#000090][b]CHR[/b][/color]([color=#ff0000]13[/color])+[color=#000090][b]CHR[/b][/color]([color=#ff0000]10[/color]) + [color=#800000]'All Files has been copied to: '[/color] + DestinationDrive$ 
[color=#000090][b]Message[/b][/color]("Text$","")[/SIZE][/FONT]
کدهای بالا رو جایگزین کدهای قبلی کنید.

موفق باشید
 

vahid1352

Active Member
سلام باتشكر از آقاي nevercom دستتون درد نكنه خيلي از شما ممنونم واقعا كمكم كردين واما زحمت بعدي در اين برنامه بعد از سرچ كردن فقط نام فايلها نشون داده ميشه آيا ميشه كاري كرد كه پسوند فايلها هم نشون داده بشه
قبلا از راهنماييتون تشكر مي كنم
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
شما در قسمت Name در این مثال یک نام رو تعیین کنید، مثلاً یک کاراکتر، نه فقط پسوند فایل بتنهایی
خواهید دید که نام فایلها بهمراه پسوند و مسیر کاملشون نمایش داده میشه، ولی اگر در این قسمت یک نام خاص رو مشخص نکنید و یا از فقط یک پسوند فایل استفاده کنید، در لیست باکس فقط نام فایلها نمایش داده میشن

نکته در اینجاست که وقتی ما با دستور SearchForFiles یک جستجو رو انجام میدیم، نتایج جستجو در لیست داخلی <List> ذخیره میشن، و در اسکریپت نویسی این مثال، برای سرعت بیشتر، اگر شما یک شرایط خاص مثل نام فایل رو برای جستجو مشخص نکرده باشید، کل لیست داخلی رو در لیست باکس لود میکنه، چون تمام موارد پیدا شده با مورد جستجوی شما مطابقت دارند
ولی اگر شما برای جستجوتون نام فایل رو هم ذکر کرده باشین، دیگه تمام لیست یکجا در لیست باکس لود نمیشن و آیتمهایی که با شرط جستجو مطابقت داشته باشن به لیست باکس اضافه میشن، که برنامه نویس این مثال، کدنویسیش رو به گونه ای انجام داده که مسیر کامل فایل در لیست باکس نمایش داده بشه، که البته براحتی قابل ویرایش به فرم دلخواه شما هست

اما چرا در مورد اول فقط نام فایل نمایش داده میشه، در صورتی که در لیست داخلی آدرس کامل فایل موجود هست، نه فقط نام فایل ؟؟؟
حقیقت این هست که در ابتدا، شئ لیست باکس، برای لیست پخش فایلهای موزیک در نظر گرفته شده بوده، که اگر دقت کنین الان هم نام این شئ SongList هست، و لیست داخلی <List> هم برای نگه داری نام آهنگها در نظر گرفته شده بوده، که این دو مکمل هم هستند، و طوری کدنویسی شده که با وجود اینکه حاوی مسیر کامل فایلها هست، فقط نام اونها رو در لیست باکس یا همون SongList نمایش بده، روشی که در برنامه های پخش موزیک مرسوم هست
و حتی دستورSearchForFile نیز در ابتدا نامش SearchForSong بوده و برای جستجوی آهنگها در دیسک در نظر گرفته شده بوده، که دستور SearchForFile شکل گسترش یافته ی این دستور هست
اگر شما در یک دکمه دستور ()SongListEdit رو بنویسید و پس از جستجو اجراش کنید، خواهید دید که یک صفحه که حاوی مسیر کامل فایلها هست نمایش داده میشه و دکمه هایی نیز برای ویرایش این لیست وجود داره، که همه ی اینها بازمانده ی شیوه ی پخش مدیا در ورژن های قدیمی تر MMB هستند.
حالا اگر مایل هستید که نام فایلها به شیوه ای که مدنظر خودتون هست نمایش داده بشن، باید کمی زحمت بیشتری رو متحمل بشید، و برای تمام شرایط کدنویسی رو به گونه ای انجام بدید که نام و پسوند فایلها رو از لیست استخراج کرده، و به روشی که مدنظرتون هست در لیست باکس نمایش بدید.
 

جدیدترین ارسال ها

بالا