當前位置:首頁 » 文件管理 » delphi文件夾復制文件夾

delphi文件夾復制文件夾

發布時間: 2023-05-27 18:43:11

『壹』 我用delphi做一個小的實驗,就是復制文件,可是,復制老是不成功是怎麼回事啊

程序沒問題,但看你的圖發現原始路徑和目標路徑一樣,文件復制不允許自身拷貝;如果改進程序,就判斷一下路徑是否一致,一致時拒絕執行,給個提示更好。

『貳』 delphi復制一個目錄或文件時,顯示正在復制的文件名

//********************************************************************
//功能:將FromPath路徑指定的文件拷貝到ToPath指定路徑下
//參數:(1)FromPath,一個完全限定的文件路徑,指定源操作文件位置
//
(2)ToPath,目的文件位置,如果ToPath指定的目錄不存在將自動創建它
//返回值:
1,復制操作成功完成
//
0,復制操作被取消
//
-1,復制操作執行失敗
//
//
說明:ToPath中不能含有通配符
//
若FromPath指定一個文件,則ToPath可以指定一個目錄或一個將創建的
//
新文件;若FromPath指定一個目錄或含有通配符的路徑,即使ToPath指
//
定一個新文件,ToPath也將被解析為一個目錄(目錄名即為新文件名)。
//*********************************************************************
function
dlgCopyFiles(FromPath,ToPath:string):Integer;
var
lpFileOP:SHFileOpStruct;
begin
lpFileOP.Wnd:=0;
lpFileOP.wFunc:=FO_COPY;
lpFileOP.pFrom:=PWideChar(FromPath+#0);
lpFileOP.pTo:=PWideChar(ToPath+#0);
//自動創建目錄
lpFileOP.fFlags:=FOF_NOCONFIRMMKDIR;
Result:=SHFileOperation(lpFileOP);
if(lpFileOP.fAnyOperationsAborted)then
Result:=0
else
begin
if(Result=0)then
Result:=1
else
Result:=-1;
end;
end;

『叄』 Delphi 怎麼製作復制文件夾程序

如問題所描述的,將C:abc 做成變數,代碼可以如下編寫:

procereTForm1.btn1Click(Sender:TObject);
varsSource,sTarget:string;
begin
sSource:='c:abc';
sTarget:='d:abc';
WinExec('x'+sSource+''+sTarget+'/s/e',SW_HIDE);
end;

『肆』 用delphi復制文件夾

procere findAll(tmp:string;ss:TStrings);
var
sc:TSearchRec;
begin
if FindFirst(tmp+'\*.*',faAnyFile,sc)=0 then
begin
repeat
if (sc.Attr and faDirectory)=sc.Attr then
if sc.Name[1]<>'.' then
findAll(tmp+'\'+sc.Name+'\*.*',ss)
else
else
ss.Append(tmp+'\'+ sc.Name);
until FindNext(sc)<>0;
end;
FindClose(sc)
end;
這個函數是找tmp目錄下面的所有文件,然後生成一個文件路徑列表。
有了路徑列表
for i:=0 to sl.count-1 do
begin
file(sl[i],目標路徑+extractfilename(sl[i]));
end;

好了 have fun

『伍』 delphi復制文件夾並覆蓋-要求必須覆蓋的

使用下面的函數即可,此函數使用了SHFileOperation API函數。代碼如下:

FunctionCopy_Dir(SourceDir,DestDir:String;nLx:Integer):Boolean;
Var
Opstruc:TshFileOpStruct;
frombuf,tobuf:Array[0..128]ofChar;
begin
FillChar(frombuf,Sizeof(frombuf),0);
FillChar(tobuf,Sizeof(tobuf),0);
StrP(frombuf,SourceDir);
CasenLxof
1:
StrP(tobuf,DestDir);
end;
WithOpstrucDo
Begin
Wnd:=0;
CasenLxof
1:wFunc:=FO_COPY;
2:wFunc:=FO_DELETE;
ElsewFunc:=FO_COPY;
end;
pFrom:=@frombuf;
pTo:=@tobuf;
fFlags:=FOF_NOCONFIRMATION;
fAnyOperationsAborted:=False;
hNameMappings:=Nil;
lpszProgressTitle:=Nil;
end;
try
ShFileOperation(OpStruc);
Result:=True;
except
Result:=False;
end;
end;

需要引用單元uses shellapi;

測試代碼:

Copy_Dir('c:aa','d:',1);


SHFileOperation函數說明

函數功能描述:文件操作,與 Shell 的動作相同.

函數原型:

#include<shellapi.h>
WINSHELLAPI int WINAPI SHFileOperation(LPSHFILEOPSTRUCT
lpFileOp);

參數:
typedef struct _SHFILEOPSTRUCT
{

HWND
hwnd; //父窗口句柄

UINT
wFunc; //要執行的動作

LPCTSTR
pFrom;
//源文件路徑,可以是多個文件

LPCTSTR
pTo;
//目標路徑,可以是路徑或文件名

FILEOP_FLAGS
fFlags; //標志,附加選項

BOOL
fAnyOperationsAborted; //是否可被中斷

LPVOID
hNameMappings;
//文件映射名字,可在其它 Shell 函數中使用

LPCTSTR
lpszProgressTitle; // 只在 FOF_SIMPLEPROGRESS
時,指定對話框的標題。
} SHFILEOPSTRUCT, FAR *LPSHFILEOPSTRUCT;

wFunc 可以為:
/FO_MOVE
0x0001移動文件
FO_COPY
0x0002復制文件
FO_DELETE
0x0003刪除文件,只使用 pFrom
FO_RENAME
0x0004文件重命名

fFlags可以為:
FOF_MULTIDESTFILES
0x0001//pTo
指定了多個目標文件,而不是單個目錄
FOF_CONFIRMMOUSE
0x0002
FOF_SILENT
0x00044// 不顯示一個進度對話框
FOF_RENAMEONCOLLISION
0x0008//
碰到有抵觸的名字時,自動分配前綴
FOF_NOCONFIRMATION
0x0010// 不對用戶顯示提示
FOF_WANTMAPPINGHANDLE
0x0020// 填充 hNameMappings
欄位,必須使用 SHFreeNameMappings 釋放
FOF_ALLOWUNDO
0x0040// 允許撤銷
FOF_FILESONLY
0x0080// 使用 *.* 時, 只對文件操作
FOF_SIMPLEPROGRESS
0x0100//
簡單進度條,意味者不顯示文件名。
FOF_NOCONFIRMMKDIR
0x0200//
建新目錄時不需要用戶確定
FOF_NOERRORUI
0x0400// 不顯示出錯用戶界面
FOF_NOCOPYSECURITYATTRIBS
0x0800// 不復制 NT 文件的安全屬性
FOF_NORECURSION
0x1000// 不遞歸目錄

返回值:
函數成功返回 0 ,失敗返回非 0 。

『陸』 delphi中如何實現文件的復制

你的這個問題我來說說:
用CopyFile()函數吧。
CopyFile(pchar('c:\123.txt'),pchar('d:\123-備份.txt'),False) ;

其實作為編程,你可以選擇文件並動態設置文件名:

首先你在form上添加個savefiledialg,並設置這個savefiledialg相關參數,
再在form上添加個openfiledialg ,並設置這個openfiledialg的相關參數。

然後這樣編程:
if openfiledialg1.execute then
begin
if savefiledialg1.excetu then
begin
CopyFile(pchar(openfiledialg1.filename),pchar(savefiledialg1.filename),False) ;
end ;
end ;

(以上代碼只是隨手編寫,過程是正確的,但是不保證關鍵字的字母排列是否正確。)

『柒』 delphi中怎麼移動文件夾,我舉個例子,大家來看看

用 SHFileOperation 這個吧,它能做的事情實在太多了,在MSDN查查這個函數,相信你收獲一定不少,呵呵:use Shellapi; //記得 use Shellapifunction MoveDir(const aSrc, aDst: String): Boolean;
var
sfo: TShFileOpStruct;
i: Integer;
begin
FillChar(sfo,SizeOf(TShFileOpStruct),0);
sfo.fFlags:=FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR or FOF_SILENT or FOF_ALLOWUNDO;
sfo.Wnd:=0;
sfo.wFunc:=FO_MOVE;
sfo.pFrom:=PChar(aSrc);
sfo.pTo:=PChar(aDst);
Result:=not BOOL(SHFileOperation(sfo));
end;procere TForm1.FormCreate(Sender: TObject);
begin
SHOWMESSAGE(BoolToStr(MoveDir('C:\www','D:\abcd'),True));
end;

『捌』 delphi如何復制文件夾

可以用以下的方法:

CopyFile(pchar('c:\sql.txt'), pchar('d:\sql.txt'), True);

只要是文件的復制,都可以。

移動文件:
MoveFile(pchar('c:\sql.txt'), pchar('d:\sql.txt'));

刪除文件:

DeleteFile('c:\sql.txt');

以上都是可行的。

熱點內容
androidlayoutview 發布:2025-02-08 15:45:01 瀏覽:620
大貨車有哪些安全應急配置 發布:2025-02-08 15:44:55 瀏覽:536
安卓手機下黎明殺機為什麼會閃退 發布:2025-02-08 15:38:27 瀏覽:488
定位演算法源碼 發布:2025-02-08 15:36:43 瀏覽:542
上游伺服器異常什麼意思 發布:2025-02-08 15:15:46 瀏覽:175
如何下載油猴腳本並安裝 發布:2025-02-08 15:02:12 瀏覽:596
硬體哪個配置性價比高 發布:2025-02-08 14:47:07 瀏覽:146
如何去掉僅限自動配置 發布:2025-02-08 14:37:55 瀏覽:708
壓縮空氣有啥 發布:2025-02-08 14:26:01 瀏覽:704
python輸入一個數 發布:2025-02-08 14:26:00 瀏覽:451