線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2386
推到 Plurk!
推到 Facebook!

关于COPYFILE函数的疑问?

缺席
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-17 11:55:46 IP:218.80.xxx.xxx 訂閱
我的代码如下,在XP下运行正常,但是在VISTA下面就有问题,程序执行后没有反映,我用的是D2009

[code delphi]
procedure TForm1.N7Click(Sender: TObject);
var text:string;
begin
absdatabase1.Connected :=false;
abstable1.open;
abstable1.edit;
if selectdirectory('请选择备份数据库的存放目录:','/',text) then
begin
copyfile(pchar(ExtractFilePath(Application.ExeName) DataBaseFileName),
pchar(text '\' DataBaseFileName ),false );
absdatabase1.connected:=true;
end;
end;
[/code]
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
frappe
中階會員


發表:88
回覆:114
積分:95
註冊:2008-10-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-22 17:06:21 IP:115.83.xxx.xxx 訂閱
我測試OK押, 我用Vista, Delphi2009


[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
begin
Copyfile(pchar('D:\123.txt'),pchar('D:\456.txt'),true);
end;

[/code]
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-22 21:19:08 IP:116.230.xxx.xxx 訂閱
回楼上的,我用了GETLASTERROR命令,
提示为“另一程序已锁定文件的一部分,程序无法访问。”
这个何解啊?是不是那里的代码错了?
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-03-28 07:35:05 IP:116.230.xxx.xxx 訂閱
我的这段代码在XP下运行正确,就是在VISTA下面有问题,难道DELPHI.KTOP里面真的就没有高手了吗?
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-03-30 10:47:29 IP:59.124.xxx.xxx 訂閱
Programming without debugging is NOTHING
===================引 用 zhouying82 文 章===================
我的这段代码在XP下运行正确,就是在VISTA下面有问题,难道DELPHI.KTOP里面真的就没有高手了吗?
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-03-30 12:56:06 IP:218.80.xxx.xxx 訂閱
自认为是高手的。会帮我解决这个问题吗?
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-03-30 14:08:34 IP:59.112.xxx.xxx 訂閱
樓上有人測過單純CopyFile 是ok 的, 你也測到Error是檔案被其他程序佔用, 
那是不是你檔案有人在用呢?
我猜(我沒用過vista)
看起來你那個是db table file 所以只要connect 就有可能被佔用, 也許 xp,vista,2003 等的db driver 在連線時開啟的佔用模式
有差異, 基本上你使用copyfile 前應先結束所有可能用到那些檔案的運作才能避免無謂的錯誤
------
額有朝天骨,眼中有靈光
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-03-30 15:18:46 IP:218.80.xxx.xxx 訂閱
回楼上,但是我如果不用TABLE1.OPEN这条语句,在VISTA下就根本不能运行了,提示"DATASET  IS CLOSE"
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#9 引用回覆 回覆 發表時間:2009-03-30 15:35:55 IP:59.112.xxx.xxx 訂閱
我想 檔案複製 和資料連結 應該是兩個無相關的獨立事件吧,我相信程式順序整理一下應該就能排除你的問題

===================引 用 zhouying82 文 章===================
回楼上,但是我如果不用TABLE1.OPEN这条语句,在VISTA下就根本不能运行了,提示"DATASET IS CLOSE"
------
額有朝天骨,眼中有靈光
roviury
一般會員


發表:3
回覆:49
積分:15
註冊:2008-08-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2009-04-05 20:52:42 IP:203.186.xxx.xxx 訂閱
"程序执行后没有反映"
請問是否連"selectdirectory"這函數也沒有反應呢?如果是的話,表示這並非copyfile的問題

另外,你也可以使用 break point 中斷點 來查找步驟的執行
你可以每一個步驟都測試一下
系統時間:2024-05-18 15:17:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!