注册 登录
编程论坛 VB6论坛

关于 VB 打开文件窗口代码的问题

事业男儿 发布于 2014-05-05 13:50, 3664 次点击
如下代码:我想实现选取到文件后,让选取的文件在程序文件夹(根目录)里生成一份(有点复制一份的意思),在下面要加什么代码才能实现呢?谢谢!
On Error Resume Next
    cdlTest.CancelError = True
    cdlTest.DialogTitle = "打开照片"
    cdlTest.FileName = App.Path
    cdlTest.DefaultExt = "bmp图像(.bmp)|*.bmp"
    cdlTest.Filter = "bmp图像(.bmp)|*.bmp|JPEG图像(.JPG)|*.JPG|GIF图像(.GIF)|*.GIF|所有文件|*.*"
    cdlTest.ShowOpen
21 回复
#2
lowxiong2014-05-05 18:20
在你的代码后面追加代码如下:
dim a as string,b as string
a=cdlTest.filename
if a<>"" then
  b=app.path & "\备份" & right(a,len(a)-instrrev(a,"\"))   '得到要备份到当前程序目录下的文件名
  filecopy a,b                                             '复制该文件
endif
#3
事业男儿2014-05-05 20:28
回复 2 楼 lowxiong
首先谢谢版主。我再问一个问题,VB如何将文件重新命名文件,不管是什么样的后缀名,只需改一下名字就可以了。谢谢!

[ 本帖最后由 事业男儿 于 2014-5-5 20:51 编辑 ]
#4
lowxiong2014-05-05 20:48
你的这个问题太搞笑了,我都不好意思回答。
#5
事业男儿2014-05-05 20:52
回复 4 楼 lowxiong
VB如何将文件重新命名文件,不管是什么样的后缀名,只需改一下名字就可以了。谢谢!我用来修改视频的名字,因为不知道
使用者上传得什么类型的视频

[ 本帖最后由 事业男儿 于 2014-5-5 20:54 编辑 ]
#6
lowxiong2014-05-05 22:10
name 原文件名(含路径全名) as 新文件名(含路径全名)
1:name "c:\aaa.jpg" as "c:\bbb.jpg"  把c盘根目录下文件aaa.jpg重命名为bbb.jpg
2:name "c:\aaa.jpg" as "d:\aaa.jpg"  把c盘根目录下文件aaa.jpg移动到d盘根目录下
#7
事业男儿2014-05-05 23:19
回复 6 楼 lowxiong
我想做一个带有视频播放器的电子通讯录,因为不知道操作者上传得什么类型的视频,上传后根据人物名称自动命名视频文件,如张山.mp4,问题来了。
 1、操作者上传的文件类型可能很多,有MP4  MPG  WAV  3GP  等,软件在命名的时候自动保存为什么样类型的视频呢?
 2、在播放的时候又怎么知道什么类型播放,难道先要读取要移动文件的类型吗?

3.只有让操作者上传规定的MP4,并且事先命名。但是这个只有电脑基础强
一点的人才能做到,不是很会玩电脑的人就没有办法。所以考虑前2条的做法。

希望高手给个代码  或者换一种思路去走。谢谢
#8
owenlu19812014-05-06 09:58
先确定播放器可以播放的文件类型,用户上传时判断文件后缀名是否在可播放范围之列
1.只改文件名,后缀名不改( Right(Len(FileName)-Instr(1,FileName,".")) 取后缀名 )
2.根据后缀名判断
#9
lowxiong2014-05-06 10:53
能播放什么类型的媒体文件,不是有文件名后缀名决定的,而是由系统安装了什么类型的解码器决定的。只要安装了相应的视音频解码器,你就是向媒体播放器提供一个无后缀名的文件也一样能播放。vb使用mediaplayer控件可以播放各种类型的本地或来自网络的媒体文件(对swf和fla的支持欠佳),可以就像使用傻瓜相机一样,方便好用灵活。
#10
事业男儿2014-05-06 11:04
回复 8 楼 owenlu1981
麻烦八楼的版主给一个命名视频文件的代码呢,谢谢!  如 20140506.mp3  直接改为 张三  前提是不知道什么类型  直接改名【就是只改文件名,后缀名不改】 但是又不会损坏文件。               不用以下方式
name 原文件名(含路径全名) as 新文件名(含路径全名)
1:name "c:\aaa.jpg" as "c:\bbb.jpg"  把c盘根目录下文件aaa.jpg重命名为bbb.jpg
2:name "c:\aaa.jpg" as "d:\aaa.jpg"  把c盘根目录下文件aaa.jpg移动到d盘根目录下

[ 本帖最后由 事业男儿 于 2014-5-6 11:20 编辑 ]
#11
xzlxzlxzl2014-05-06 11:15
回复 10 楼 事业男儿
嘻嘻,6楼的版主已经给出代码了,我都看懂了,楼主没看到?
name 20140506.mp3 as 张三

(没看到你后来的修改)不用name函数,好像还可以调用dos命令改文件名的,好像是shell "ren 20140506.mp3  张三"


[ 本帖最后由 xzlxzlxzl 于 2014-5-6 11:25 编辑 ]
#12
事业男儿2014-05-06 11:24
回复 11 楼 xzlxzlxzl
你觉得这样可以吗?
#13
xzlxzlxzl2014-05-06 11:26
回复 12 楼 事业男儿
字符串要用引号!
#14
事业男儿2014-05-06 11:31
回复 11 楼 xzlxzlxzl
还是出错
#15
lowxiong2014-05-06 12:28
回复 14 楼 事业男儿
要给全路径,比如文件20140506.mp3 是在d:\music里,则是name "d:\music\20140506.mp3" as "d:\music\张三",如果觉得输入全路径麻烦,可以先更改默认路径名,代码如下
chdir "d:\music"
name "20140506.mp3" as "张三"

调用dos命令
shell "cmd /c ren d:\music\20140506.mp3 张三"

[ 本帖最后由 lowxiong 于 2014-5-6 13:00 编辑 ]
#16
事业男儿2014-05-06 13:20
回复 15 楼 lowxiong
版主还是出错。只有这样才可以 shell "cmd /c ren d:\music\20140506.mp3  张三.mp3" 。只有张三 后面加.MP3这样才可以,与6楼一样的了。如果这样就违背了只改文件名,不改后缀名的方法。
但如果先识别是什么后缀名,然后在再改呢。这些问题怎么这么难哦。

[ 本帖最后由 事业男儿 于 2014-5-6 13:21 编辑 ]
#17
lowxiong2014-05-06 13:33
怎么可能,我执行的一切正常,除非你用的事外星系统
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
#18
事业男儿2014-05-06 14:15
回复 17 楼 lowxiong
我执行后与你一样,问题出在点击张三找不到打开方式。难道系统有问题。为了保证在所有电脑上使用 我把电脑上的暴风影音 还有其它的播放器都卸载了  保留了XP统统自带的播放器。

[ 本帖最后由 事业男儿 于 2014-5-6 14:18 编辑 ]
#19
lowxiong2014-05-06 14:20
不知道你要干什么。
你一方面需要去掉媒体文件的后缀名,让人家看不出你的文件类型,你又希望系统能自动找应用程序打开你改掉后缀名的文件,这很矛盾。
#20
事业男儿2014-05-06 14:36
不是  版主理解错误   我主要是想实现下面
On Error Resume Next
    cdlTest.CancelError = True
    cdlTest.DialogTitle = "上传视频"
    cdlTest.FileName = App.Path
    cdlTest.DefaultExt = "MP4(.MP4)|*.MP4"
    cdlTest.Filter = "MP4(.MP4)|*.MP4|mpg(.mpg)|*.mpg|3gp(.3gp)|*.3gp|所有文件|*.*"
    cdlTest.ShowOpen
dim a as string,b as string
a=cdlTest.filename
if a<>"" then
  b=app.path & "\备份" & right(a,len(a)-instrrev(a,"\"))   '得到要备份到当前程序目录下的文件名
  filecopy a,b                                             '复制该文件
endif
文件复制到了指定的文件夹了  
想把文件命名为 Text1.text 里面的名字  比如 Text1.text 显示为张三   就把多媒体视频改为张三这个名字,因为不知道使用者会上传一些什么类型的文件
所以要求只改文件名,不改后缀名,就是这个意思。各位版主辛苦了,再次对你们说声谢谢。

[ 本帖最后由 事业男儿 于 2014-5-6 17:59 编辑 ]
#21
lowxiong2014-05-06 14:59
On Error Resume Next
    cdlTest.CancelError = True
    cdlTest.DialogTitle = "上传视频"
    cdlTest.FileName = App.Path
    cdlTest.DefaultExt = "MP4(.MP4)|*.MP4"
    cdlTest.Filter = "MP4(.MP4)|*.MP4|mpg(.mpg)|*.mpg|3gp(.3gp)|*.3gp|所有文件|*.*"
    cdlTest.ShowOpen
dim a as string,b as string,c as string
a=cdlTest.filename
if a<>"" then
  b=iif(instrrev(a,".")>0,"." & right(a,len(a)-instrrev(a,".")),"")   '获取该文件的扩展名  
  if trim(text1)<>"" then filecopy a,app.path & "\" & text1 & b       '如果text1内文字合法则复制并改成需要的文件名
endif


[ 本帖最后由 lowxiong 于 2014-5-6 16:16 编辑 ]
#22
事业男儿2014-05-06 17:40
回复 21 楼 lowxiong
谢谢版主,终于实现了 谢谢!
1