تمام سوالات سوالات بدون پاسخ سوال بپرسید

سلام،

من میخواهم یکسری فایل را از CD Rom داخل Hard Disk کپی کنم. در console با زبان دلفی برنامه را نوشتم ولی کار نمی کنه error هم نمی ده فقط دایرکتوری مورد نظر ساخته می شه در Hard Disk ولی فایل ها داخل دایرکتوری کپی نمی شوند. کد مربوط به کپی کردن فایل ها را در زیر گذاشتم. با تشکر.

  if FindFirst('*.*', faAnyFile, SR) = 0 then
  begin
    repeat
      if (SR.Attr <> faDirectory) then
      begin
          st :=SR.Name;
          if pos('Setup_m',st)=0 then
              begin
                AssignFile(FromF,st) ;
                Reset(FromF, 1) ;
                AssignFile(ToF,'D:\Destination\'+st) ;
                Rewrite(ToF, 1) ;
                repeat
                  BlockRead(FromF, Buffer, SizeOf(Buffer), NumRead) ;
                  BlockWrite(ToF, Buffer, NumRead, NumWritten) ;
                until (NumRead = 0) or (NumWritten <> NumRead) ;
                  CloseFile(FromF) ;
                  CloseFile(ToF) ;
              end;
      end;
    until FindNext(SR) <> 0;
    FindClose(SR);
   end;
1 پاسخ

سلام،

من مشکل را فهمیدم، باید Filemode را به حالت Read Mode تغییر می دادیم تا از روی CD Rom فایل را بتواند بخواند بعد دوباره Filemode را به حالت قبلی برمی گردانیم.

      if FindFirst('*.*', faAnyFile, SR) = 0 then
  begin
    repeat
    //  Writeln('New file');
      if (SR.Attr <> faDirectory) then
     //if ((SR.Attr and faDirectory)>0) and (SR.Name[1]<>'.') then
      begin
          Writeln('File exist');
          st :=SR.Name;
          Writeln(st+ ' File');
          sleep(200);
          if (pos('Setup_m',st)=0) and (SR.Name[1]<>'.') then
              begin
                Writeln('start assign');
                OldFileMode:=FileMode;
                FileMode:=0;  {set read mode}
                AssignFile(FromF,st);
                Reset(FromF, 1) ;
                FileMode:=OldFileMode; {change to previous mode}
                Writeln('File reset');
               // Writeln(FromF, 1);
               sleep(100);
                AssignFile(ToF,'D:\Destination\'+st) ;
                Rewrite(ToF, 1) ;
                Writeln('rewrite');
                repeat
                  BlockRead(FromF, Buffer, SizeOf(Buffer), NumRead) ;
                  BlockWrite(ToF, Buffer, NumRead, NumWritten) ;
                until (NumRead = 0) or (NumWritten <> NumRead) ;
                  CloseFile(FromF) ;
                  CloseFile(ToF) ;
                  Writeln(st+' file is copied');
                  sleep(200);
              end;
      end;
    until FindNext(SR) <> 0;
    FindClose(SR);
    Writeln('Setup successfuly finished');
    sleep(1500);
   end;
toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×34
  • ×3
  • ×2
  • ×1
  • ×1
  • پرسیده شده: 02 سپتامبر '12, 15:51
  • بازدید: 1,545 بار
  • آخرین بروزرسانی: 05 سپتامبر '12, 11:57

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها