第1个回答 2012-07-09
#include <iostream>
#include <windows.h>
using namespace std;
/************************************************/
/*参数说明:
char *pszDestPath为需要遍历的目标路径
/************************************************/
EnmuDirectory(char *pszDestPath, int& sum)
{
//此结构说明参MSDN
WIN32_FIND_DATA FindFileData;
//查找文件的句柄
HANDLE hListFile;
//绝对路径,例:c:\windows\system32\cmd.exe
char szFullPath[MAX_PATH];
//相对路径
char szFilePath[MAX_PATH];
//构造相对路径
wsprintf(szFilePath, "%s\\*", pszDestPath);
//查找第一个文件,获得查找句柄,如果FindFirstFile返回INVALID_HANDLE_VALUE则返回
if((hListFile = FindFirstFile(szFilePath, &FindFileData)) == INVALID_HANDLE_VALUE)
{
//查找文件错误
return 1;
}
else
{
do
{
if( lstrcmp(FindFileData.cFileName, TEXT(".")) == 0 ||
lstrcmp(FindFileData.cFileName, TEXT("..")) == 0 )
{
continue;
}
//构造全路径
wsprintf(szFullPath, "%s\\%s", pszDestPath, FindFileData.cFileName);
//读取文件属性,如果不是文件夹
if(!(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
char *pszFileType = NULL;
pszFileType = &(FindFileData.cFileName[strlen(FindFileData.cFileName) - 3]);
if(!stricmp(pszFileType, "txt"))
{
cout<<FindFileData.cFileName<<endl;
++sum;
}
}
//如果是文件夹,则递归调用EnmuDirectory函数
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
EnmuDirectory(szFullPath, sum);
}
//循环,查找下一个文件
}while(FindNextFile(hListFile, &FindFileData));
}
//关闭句柄
FindClose(hListFile);
//清空结构。可有可无的一句代码。函数退出会自动清空。
ZeroMemory(&FindFileData, sizeof(FindFileData));
return 0;
}
int main()
{
int sum = 0;
EnmuDirectory("D:", sum);
第2个回答 2012-07-14
1.先引用命名空间。
using System.IO;
2.文件地址
public string filePath= Environment.CurrentDirectory+@“\123.txt”;
3.在某个过程内。
string[] temp;
int n1;
temp = File.ReadAllLines(filePath, Encoding.GetEncoding("gb2312"));
for (n1 = 0; n1 == temp.Length; n1++)
{
return temp[n1];//这个调试输出是什么?
}本回答被网友采纳