关于调用API进行操作文件如复制粘贴,删除打开的问题
请问有没有这方面的资料可供参考?
本人试做PB程序,,在本机上可用API打开文件,,但是在网络上的其它电脑打不开,请问有是什么问题。
问题点数:50、回复次数:19Top
1 楼li_d_s(鄙视那些不懂Java却跑来乱骂的人,.NET没啥了不起)回复于 2006-03-17 13:50:31 得分 15
这些操作pb本身提供了相关函数的阿Top
2 楼jf_zhong(风继续吹)回复于 2006-03-17 14:20:04 得分 0
String str_null,str_filename
str_filename=ss_current_directory + ls_path
if FileExists(str_filename)=true then //文件是否存在
li_filenum = ShellExecute( Handle(Parent), str_null, str_filename , str_null, str_null, 1 )
else
messagebox("提示","文件不存在或文件被锁!")
end if
以上代码为打开文件(文件在网络的一台电脑上),,我在系统2003,XP都能实现,但在win98上不能打开,为什么在WIN98上打不开,请大侠帮帮小弟,谢谢!Top
3 楼msgtogcra()回复于 2006-03-17 20:50:06 得分 30
li_filenum 的返回值是多少?Top
4 楼jf_zhong(风继续吹)回复于 2006-03-18 09:40:29 得分 0
在2003中返回41 能打开
在98 中返回31 不能打开
在xp中返回42 能打开Top
5 楼msgtogcra()回复于 2006-03-18 15:54:57 得分 0
查了一下 api 帮助; 31 的意思是说系统打不开该扩展名的文件Top
6 楼jf_zhong(风继续吹)回复于 2006-03-21 09:19:09 得分 0
程序应该怎样写,才能在Win98中打开指定的文件?Top
7 楼msgtogcra()回复于 2006-03-21 09:23:17 得分 0
你确定那个 98 系统能正常打开该扩展名的文件吗?比如双击打开Top
8 楼jf_zhong(风继续吹)回复于 2006-03-21 11:06:46 得分 0
该文件是个DOC文件,是在操作员的电脑上编缉好,再上传到服务器上的,所以肯定能打开的.我在WIN2003,WIN2000试过能打开,就是在WIN98的电脑上打不开.Top
9 楼jf_zhong(风继续吹)回复于 2006-03-21 11:11:05 得分 0
程序在WIN2003,WIN2000中运行能打开上传的文件,但是在WIN98的电脑上打不开.
Top
10 楼li_d_s(鄙视那些不懂Java却跑来乱骂的人,.NET没啥了不起)回复于 2006-03-21 11:28:12 得分 0
应该是文件关联有问题,你再98下随便用这个函数打开个txt看看能否成功Top
11 楼msgtogcra()回复于 2006-03-21 21:51:26 得分 0
试验证明:98 下这个 SetNull(str_null) 不能省略Top
12 楼jf_zhong(风继续吹)回复于 2006-03-22 10:42:31 得分 0
请问楼上,我应该怎样写呢?Top
13 楼jf_zhong(风继续吹)回复于 2006-03-22 10:59:04 得分 0
答复:li_d_s 我尝试在WIN98中打开TXT文件,不过li_filenum还是返回 31 ,打开时没反应.Top
14 楼jf_zhong(风继续吹)回复于 2006-03-22 15:33:11 得分 0
怎么没人回答呀Top
15 楼msgtogcra()回复于 2006-03-22 21:45:49 得分 0
就是要用 SetNull() 函数把 str_null 置为 NULL 啊,而不能是空字符串!空(null)空串是两回事,可能 98 下的 api 要求比较严格,而 2000 以上的有一定容错能力。Top
16 楼jf_zhong(风继续吹)回复于 2006-03-23 17:23:55 得分 0
答复楼上:我加上setnull(li_FileNum) 后,在WIN98中试运行,还是返回31,不能打开文件。请问有没有例子可供我参考一下,谢谢!
ls_path = this.getitemstring(row,"path")
String str_null,str_filename
str_filename=ss_current_directory + ls_path
if FileExists(str_filename)=true then //文件是否存在
setnull(li_FileNum)
li_filenum = ShellExecute( Handle(Parent), str_null, str_filename , str_null, str_null, 1 )
else
messagebox("提示","文件不存在或文件被锁!")
end if
Top
17 楼msgtogcra()回复于 2006-03-23 20:08:19 得分 0
...不得不说:你实在太马虎了!!!我写的是 SetNull(str_null)
if FileExists(str_filename)=true then //文件是否存在
setnull(str_null) <---
li_filenum = ShellExecute( Handle(Parent), str_null, str_filename , str_null, str_null, 1 )
Top
18 楼yangshunying()回复于 2006-03-23 23:09:50 得分 5
请问你的WIN98装有WORD吗?Top
19 楼jf_zhong(风继续吹)回复于 2006-03-24 10:57:37 得分 0
98系统有word软件的;
可以了!
感谢楼上们的帮忙!谢谢!Top




