幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4603|回复: 10

[游戏编程] [求助]关于文件夹的问题

[复制链接]

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
发表于 2007-9-18 03:55:47 | 显示全部楼层 |阅读模式
Q1:如何判定某一个文件夹是否存在呢?在网上查到说是使用DirectoryExists,但是这个东西根本就没有被定义,是要使用什么头文件吗= =?

Q2:如何获取某个文件夹中所有文件的文件名呢?

Q3:如何复制文件呢(土方法只能复制文档类型的文件,但是对exe之类的都不行。)?

PS:我用的是VC。
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2007-9-18 11:07:02 | 显示全部楼层
1.DirectoryExists是bcb中的函数,vc里面没法用
vc里用winapi, #inlcude "windows.h" 吧,然后是
UINT GetWindowsDirectory(LPTSTR lpBuffer, UINT uSize )
作用是获取目录名,返回值为0,可以判断目录不存在
2.api函数里有HANDLE FindFirstFile  (LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData,LPHANDLE lpFileAttribute);
和BOOL FindNextFile(HANDLE hFindFile, LPWIN32_FIND_DATA lpFindFileData);
组合使用即可.
3.试试api函数 BOOL CopyFile  (LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName,BOOL bFailIfExists );
え~え~お!!!
回复 支持 反对

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
 楼主| 发表于 2007-9-18 11:24:27 | 显示全部楼层
谢谢,我去试试看-0-)/~
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

50

主题

742

帖子

402

积分

版主

自定义头衔

Rank: 7Rank: 7Rank: 7

积分
402
发表于 2007-9-18 21:49:04 | 显示全部楼层
建议用命令行比较方便:
if not exist "$(dir)" ...

即可
Style-C
回复 支持 反对

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
 楼主| 发表于 2007-9-18 22:13:57 | 显示全部楼层
引用第3楼lw于2007-09-18 21:49发表的  :
建议用命令行比较方便:
if not exist "$(dir)" ...

即可

= =|||这个怎么用呢……
目前所使用的方法(超级土法):
char str[100];
char orgstr[100];
std::string bun;
GetCurrentDirectory(100,str);
GetCurrentDirectory(100,orgstr);
bun = str;
bun.append("/");
bun.append(XXX(要判定存在的文件夹名));
sprintf(str,"%s",bun.c_str());
if(!SetCurrentDirectory(str))
{
    XXX(制造文件夹);
}
else
{
    SetCurrentDirectory(orgstr);
    XXX(提示说文件夹已经存在);
}
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
发表于 2007-9-18 22:41:29 | 显示全部楼层
GetWindowsDirectory是获取WINDOWS的安装目录……

正路是是用FindFirstFile然后判断返回的是文件还是文件夹……
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
 楼主| 发表于 2007-9-18 22:51:16 | 显示全部楼层
引用第5楼john_he于2007-09-18 22:41发表的  :
GetWindowsDirectory是获取WINDOWS的安装目录……

正路是是用FindFirstFile然后判断返回的是文件还是文件夹……

看了一下关于FindFirstFile的API函数,里面的那个WIN32_FIND_DATA应该算是什么类的东西?

如果我打开了一个文件夹,但是我并不知道里面有什么文件存在,这样FindFirstFile不是失去效用了吗……?
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
 楼主| 发表于 2007-9-19 00:47:42 | 显示全部楼层
问题2也搞定了……
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
发表于 2007-9-19 17:36:13 | 显示全部楼层
WIN32_FIND_DATA是一个预定义的结构,#include <windows.h>就可以用,里面是返回找到的文件/文件夹的属性用的。
如果我打开了一个文件夹,但是我并不知道里面有什么文件存在,这样FindFirstFile不是失去效用了吗……?
你是想实现怎么样的功能?
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
 楼主| 发表于 2007-9-20 00:38:07 | 显示全部楼层
引用第8楼john_he于2007-09-19 17:36发表的  :
WIN32_FIND_DATA是一个预定义的结构,#include <windows.h>就可以用,里面是返回找到的文件/文件夹的属性用的。

你是想实现怎么样的功能?

就是在不知道文件夹里有什么文件的情况下知道这个文件夹里所有文件的文件名……后面发现,原来只要简单的一个"*"就可以了= =|||……然后就可以一直用FindNextFile。
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-28 18:30 , Processed in 0.024346 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表