【C語言】如何實現將windows平台下的目錄復制到另一個目錄下


請教各位大俠,現在E盤根目錄Project下面有三個目錄目錄1,目錄2,目錄3和一個文件hello.c,
如何將目錄1和目錄2以及文件hello.c復制目錄3,求好的方法,如果有批處理的方法也幫忙指導下

8 个解决方案

#1


引用
如果有批處理的方法

批處理相當於小程序,一般使用程序的原因是手工比較繁瑣費時。
或者想實現可復用,比如換一個參數就能實現將目錄1、目錄3 、hello.c復制到目錄2。

回到題目,第一個原因不存在,也就是點幾個鼠標或者快捷鍵,並不麻煩。
如果是第二個原因,那怎么設計這個小程序呢,需要再給出更明確的需求說明。
輸入參數設定成什么,能讓程序知道是將目錄1、目錄3 、hello.c復制到目錄2。
還是將目錄1、目錄2 、hello.c復制到目錄3。
您仔細想想,其實設計這個小程序並不簡單,當然,如果你能給出明確的規律,就容易了。

總結:單就這個題目而言,復用資源瀏覽器,選定、復制即可。
          暫時沒看出有寫批處理(小程序)的必要。


#2


打錯一個字,不是復用資源瀏覽器, 是使用資源瀏覽器

#3


set BASE=E:\Project1
xcopy "%BASE%\dir1" "%BASE%\dir3" /E /C /F /G /R /Y
xcopy "%BASE%\dir2" "%BASE%\dir3" /E /C /F /G /R /Y
copy "%BASE%\hello.c" "%BASE%\dir3" /Y

#4


引用 3 樓 SXJIAKE 的回復:
set BASE=E:\Project1
xcopy "%BASE%\dir1" "%BASE%\dir3" /E /C /F /G /R /Y
xcopy "%BASE%\dir2" "%BASE%\dir3" /E /C /F /G /R /Y
copy "%BASE%\hello.c" "%BASE%\dir3" /Y

Hi, 比如目錄dir1,dir2下面沒有文件,那么也需要把目錄dir1,dir2拷貝到dir3下,不單單是dir1或dir2下面的文件。

#5


/E     Copies directories and subdirectories, including empty ones.
       Same as /S /E. May be used to modify /T.

#6


引用 5 樓 SXJIAKE 的回復:
/E     Copies directories and subdirectories, including empty ones.
       Same as /S /E. May be used to modify /T.

Hi,實踐你的方法,不行哦,你可以自己試試哦,看來還沒有更好的方法了。我現在的實現方法是可以的。就是感覺不簡化。

#7


引用 6 樓 sunrier 的回復:
Quote: 引用 5 樓 SXJIAKE 的回復:

/E     Copies directories and subdirectories, including empty ones.
       Same as /S /E. May be used to modify /T.

Hi,實踐你的方法,不行哦,你可以自己試試哦,看來還沒有更好的方法了。我現在的實現方法是可以的。就是感覺不簡化。
測試了一下發現,原來 Windows 除了 move 之外,copy 和 xcopy 都不能把原目錄自身拷貝到目標目錄,只能從把原目錄中的文件進行拷貝。這點和 Linux 的 cp、mv 略不同。Windows 的 copy 或 xcopy 來源寫成 dir、dir\、dir\* 是一樣的意義。而 Linux 系統的 cp 命令,如果來源只寫目錄名字 dir、dir/,就是連帶目錄一起拷貝。如果是 dir/* 則拷貝其中的文件,不拷貝來源目錄本身。

#8


搜robocopy

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: