| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 684 人关注过本帖, 2 人收藏
标题:请教:修复复制文件文件名会变成小写字母的问题
只看楼主 加入收藏
girlsfriend
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2022-2-25
结帖率:100%
收藏(2)
已结贴  问题点数:10 回复次数:9 
请教:修复复制文件文件名会变成小写字母的问题
论坛看到这个帖子
https://bbs.bccn.net/viewthread.php?tid=510614&page=1#pid2769726
八楼回复说已经修复了这个BUG,并给了个链接
http://
不知道具体怎么弄,麻烦哪位弄过的指导下,谢谢!
搜索更多相关主题的帖子: 复制 文件名 字母 文件 小写 
2023-07-23 09:32
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:0 
ccb 说的修复是指他的 VFPA,没有提供独立的修复包。非常在意大小写的话,用 Windows 外壳对象来复制文件好了,例如:
oShell = CreateObject("Shell.Application")
oFolder = oShell.NameSpace('d:\')
oFolder.CopyHere('c:\AAA.txt')


[此贴子已经被作者于2023-7-23 10:40编辑过]


这家伙很懒,啥也没留下
2023-07-23 10:39
girlsfriend
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2022-2-25
收藏
得分:0 
回复 2楼 csyx
您好,本人技术有点菜,上面几句我有点看不明白,能否代码写详细点吗,比如说怎么把“c:\aa.txt”拷贝到“d:\AAB.txt”
谢谢
2023-07-23 10:57
easyppt
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:309
专家分:711
注 册:2021-11-24
收藏
得分:2 
2楼代码的意思是:

c:\AAA.txt 复制到  d:\ 目录下

你自己测试一下,就知道了

例子仅仅给了一个简单复制,如果 文件已存在,如何直接覆盖,好像没写参数。

[此贴子已经被作者于2023-7-23 11:27编辑过]

2023-07-23 11:25
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:3 
哦,前面的代码只是这个对象提供的复制文件方法,它只完成复制粘贴操作
要同时更名的话,需要再加两行代码

oShell = CreateObject("Shell.Application")
oFolder = oShell.NameSpace('d:\')
oFolder.CopyHere('c:\AAA.txt')
*--
oFile = oFolder.ParseName('AAA.txt')
oFile.Name = 'AAB.txt'
*--

这家伙很懒,啥也没留下
2023-07-23 11:28
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:0 
以下是引用easyppt在2023-7-23 11:25:18的发言:
例子仅仅给了一个简单复制,如果 文件已存在,如何直接覆盖,好像没写参数。

是的,只写了最基本的操作,也没做任何错误处理,仅仅是提供一种途径
其实方法多的是,如果使用瓜哥的 myfll,有 CopyFiles 函数;如果使用 vfp2c32.fll,有 CopyFileEx 函数;如果熟悉 win32api,有 CopyFile/CopyFileEx;。。。

详细的参数用法,参见微软在线资料:https://learn.
例如要覆盖同名文件,使用参数 16: oFolder.CopyHere('c:\AAA.txt', 16)

[此贴子已经被作者于2023-7-23 11:54编辑过]


这家伙很懒,啥也没留下
2023-07-23 11:39
foxfans
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:113
专家分:324
注 册:2021-10-23
收藏
得分:5 
pp="D:\AAA.txt"
DECLARE long CopyFile IN "kernel32" String,String,long
IF CopyFile("C:\aaa.txt",pp,0)=1
   ?'ok'
ENDIF
2023-07-23 11:54
girlsfriend
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2022-2-25
收藏
得分:0 
万分感谢各位解答,终于解决问题了
2023-07-23 12:32
sych
Rank: 6Rank: 6
等 级:侠之大者
威 望:7
帖 子:322
专家分:450
注 册:2019-10-11
收藏
得分:0 
源文件="f:\AAA.txt"  &&此地不分大小写,因为vfp不分大小写
复制到="c:\"  &&和源文件保持一致,磁盘中保存的样子,不是上面的样子
DECLARE long CopyFile IN "kernel32" String,String,long
Declare Long GetLongPathName in win32api String, String @, Long
IF FILE(源文件)
    IF FILE((ADDBS(复制到)+JUSTFNAME(GetOsFileName(源文件))))
        ?"文件已存在,复制失败"
    else
        IF CopyFile(源文件,(ADDBS(复制到)+JUSTFNAME(GetOsFileName(源文件))),0)=1
           ?'ok'
        ENDIF
    endif
ELSE
    ?"源文件不存在,请检查"
endif
RETURN

Function GetOsFileName(tcFileSpec)
Local nLen, cBuff
m.nLen = 260
m.cBuff = Replicate(Chr(0), m.nLen)
m.nLen = GetLongPathName(m.tcFileSpec, @ m.cBuff, m.nLen)
Return Left(m.cBuff, m.nLen)
EndFunc

这段代码是根据一片空白的代码整合出来的
2023-07-23 16:55
girlsfriend
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2022-2-25
收藏
得分:0 
回复 9楼 sych
学习了
2023-07-25 15:52
快速回复:请教:修复复制文件文件名会变成小写字母的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017796 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved