一个数据备份路径合法的问题(50分)在线等待

houniao 2002-08-05 03:27:40
小弟目前正在做一个MIS的测试,有关于一个数据备份的问题。就是在输入备份路径的时候,应该怎样去判断此路径是否合法呢?目前的错误在于,只要路径不为空,系统都承认其是合法的,烦啊,各位帮个忙。
...全文
41 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
houniao 2002-08-06
  • 打赏
  • 举报
回复
to:TianChong(.NET 我不懂!)
老兄,你那个DirectoryExists函数是不是自定义的啊?怎么在pb7.0中没有啊?
麻烦了啊
houniao 2002-08-06
  • 打赏
  • 举报
回复
to:TianChong(.NET 我不懂!)
GetCurrentDirectory函数是ulong型,而rtn是boolean型,if not (rtn=SetCurrentDirectory(l_dir)) 编译时通不过啊!
TianChong 2002-08-06
  • 打赏
  • 举报
回复
Messagebox("提示","当前目录重置.")
这一句应是:
Messagebox("提示","当前目录重置不成功.")

TianChong 2002-08-06
  • 打赏
  • 举报
回复
//如果判断是否存在此路径。
if DirectoryExists('your_path') then
//to do your event.....
end if

//DirectoryExists()是PB8内部函数。

//如果你在PB7.0中使用,则用API吧.
//先作以下定义如下(Declare Global external functions):
FUNCTION ulong GetCurrentDirectory(ulong nBufferLength,ref string
lpBuffer) LIBRARY "kernel32.dll"
FUNCTION ulong SetCurrentDirectory(ref string lpPathName) LIBRARY
"kernel32.dll" ALIAS FOR "SetCurrentDirectoryA"
//(注意函数名的大小写是区分的)
//我没有找到直接判断路径是否合法的API.只好采用一个折中的办法:
//先取得当前路径并保存:

string ls_curdir //保存路径的字符串变量。
ulong l_buf
l_buf=100
ls_curdir=space(l_buf)
GetCurrentDirectory(l_buf,ls_curdir)

//再设置你要判断的路径,如果成功说明路径存在.然后再将路径设置回原来保存的路径.

boolean rtn
string l_dir
l_dir="yourdir"
if not (rtn=SetCurrentDirectory(l_dir)) then
Messagebox("提示","目录:["+l_dir+"]不存在.请重新输入一个有效的路径.")
return
else //设置成功
//你的代码.......
if not(rtn=SetCurrentDirectory(l_curdir) ) then //将路径设置回去.
Messagebox("提示","当前目录重置.")
halt close //如果一定要返回的话,就要关闭,否则程序可以出现找不到路径的情况.
end if
return
end if
houniao 2002-08-06
  • 打赏
  • 举报
回复
好象各位说得都是选择路径时判断是否合法,而我要的是用户自己输入路径时判断其输入的路径是否合法的问题,再次拜托各位。一定得帮这个忙,小弟急用啊!
pbsql 2002-08-05
  • 打赏
  • 举报
回复
你让他选择路径而不是输入路径就是了
TianChong 2002-08-05
  • 打赏
  • 举报
回复
//如果判断是否存在此文件。
if FileExists("YOUR_FILE") then
//TO DO YOUR EVENT........
end if

//如果判断是否存在此路径。
if DirectoryExists('your_path') then
//to do your event.....
end if

//以上代码都是PB8版本。
TianChong 2002-08-05
  • 打赏
  • 举报
回复
还有一段保存文件的代码:
choose case lower(right(docname,4))
case ".xls"
idw_print.SaveAs(docname,Excel5!,true)
case ".htm", "html"
idw_print.SaveAs(docname,HTMLTable!,False)
case ".doc" ,".txt",".prn"
idw_print.SaveAs(docname,text!,true)
case ".cvs"
idw_print.SaveAs(docname,CSV!,true)
case ".asc"
idw_print.SaveAsascii(docname,"&","'")
case else
idw_print.SaveAs(docname,EXCEL5!,true)
end choose

//----------ALL---------OK--------------//
TianChong 2002-08-05
  • 打赏
  • 举报
回复
integer li_RC
string docname,named

ReEntertheFileName:

li_RC=GetFileSaveName("请输入文件名",docname,named,"DOC","EXCEL文件(*.XLS),*.XLS,HTML文件(*.HTM),*.HTM,所有文件(*.*),*.*")

IF li_RC=1 and docname<>"" then
if FileExists(docname) then //判断是否文件已存在
if Messagebox("小心操作","文件已经存在,是否覆盖? ",question!,yesno!,2)=1 then
else
Goto ReEnterTheFileName
end if
end if

//文件名在docname中
//测试成功.......其实是我正在用着的.一定没问题.
//记得给分啊.呵呵.
zzz1975 2002-08-05
  • 打赏
  • 举报
回复
UP
楼上两位
jeking 2002-08-05
  • 打赏
  • 举报
回复
简单的问题,
使用GetFileSaveName ( title, pathname, rfilename {, extension {, filter } } )
取得返回值,保证是正确的路径
青藤1111 2002-08-05
  • 打赏
  • 举报
回复
如果用pb的pfc类库的用
n_cst_filesrv inv_filesrv
f_setfilesrv(inv_filesrv,true)
boolean lb_exist
lb_exist =inv_filesrv.of_DirectoryExists ( 你的路径 )
如果存在lb_exist = true 否则 lb_exist = false

用api函数:
具体用那个dll,什么函数我忘了
你去网上查查
hjd_cw 2002-08-05
  • 打赏
  • 举报
回复
string ls_path
string ls_temp
int li_file
ls_path = 用户输入
ls_temp = ls_path + '\temp.txt'
li_file = FileOpen(ls_temp,LineMode!,Read!)
if li_file < 0 then
MessageBox('','路径'+ls_paht+'不存在!',StopSign!)
else
FileClose(li_file)
进行备份.....
end if
houniao 2002-08-05
  • 打赏
  • 举报
回复
老兄,能否讲得详细一点?拜托
青藤1111 2002-08-05
  • 打赏
  • 举报
回复
通过api 或pfc中函数判断输入的路径是否存在,即可

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧