当前位置: 技术问答>linux和unix
在VC下如果要打开其它语言命名的文件读行二进制读取可以用TCHAR来定义文件名,读写函数他自己会自动选择,现在要换到LINUX下(UBUNTU)下开发,如果有多种语言命名的文件,我应该用什么类型来存放文件名?
来源: 互联网 发布时间:2016-04-27
本文导语: VC下 THCAR FileName[100]="..."; ifstream FileW(FileName, ios::bininary); 就可以,那么LINUX下对应的如何? LINUX下有 ¡¡¡¡void findAllFile(char * pFilePath) ¡¡¡¡{ ¡¡¡¡DIR * dir; ¡¡¡¡dirent * ptr; ¡¡¡¡struct stat stStatBuf; ¡¡¡¡chdir(pFi...
VC下
THCAR FileName[100]="...";
ifstream FileW(FileName, ios::bininary);
就可以,那么LINUX下对应的如何?
LINUX下有
¡¡¡¡void findAllFile(char * pFilePath)
¡¡¡¡{
¡¡¡¡DIR * dir;
¡¡¡¡dirent * ptr;
¡¡¡¡struct stat stStatBuf;
¡¡¡¡chdir(pFilePath);
¡¡¡¡dir = opendir(pFilePath);
¡¡¡¡while ((ptr = readdir(dir)) != NULL)
¡¡¡¡{
¡¡¡¡if (stat(ptr->d_name, &stStatBuf) == -1)
¡¡¡¡{
¡¡¡¡printf("Get the stat error on file:%sn", ptr->d_name);
¡¡¡¡continue;
¡¡¡¡}
¡¡¡¡if ((stStatBuf.st_mode & S_IFDIR) && strcmp(ptr->d_name, ".") != 0
¡¡¡¡&& strcmp(ptr->d_name, "..") != 0)
¡¡¡¡{
¡¡¡¡char Path[MAX_PATH];
¡¡¡¡strcpy(Path, pFilePath);
¡¡¡¡strncat(Path, "/", 1);
¡¡¡¡strcat(Path, ptr->d_name);
¡¡¡¡findAllFile(Path);
¡¡¡¡}
¡¡¡¡if (stStatBuf.st_mode & S_IFREG)
¡¡¡¡{
¡¡¡¡printf("¡¡%sn", ptr->d_name);
¡¡¡¡}
¡¡¡¡//this must change the directory , for maybe changed in the recured
¡¡¡¡
¡¡¡¡function
¡¡¡¡chdir(pFilePath);
¡¡¡¡}
¡¡¡¡closedir(dir);
¡¡¡¡}
上面的函数可以得到所有的文件名,那么如果是中文或其它语言的文字怎么办?在VC中定义TCHAR类型就行,在这里如何做!?
THCAR FileName[100]="...";
ifstream FileW(FileName, ios::bininary);
就可以,那么LINUX下对应的如何?
LINUX下有
¡¡¡¡void findAllFile(char * pFilePath)
¡¡¡¡{
¡¡¡¡DIR * dir;
¡¡¡¡dirent * ptr;
¡¡¡¡struct stat stStatBuf;
¡¡¡¡chdir(pFilePath);
¡¡¡¡dir = opendir(pFilePath);
¡¡¡¡while ((ptr = readdir(dir)) != NULL)
¡¡¡¡{
¡¡¡¡if (stat(ptr->d_name, &stStatBuf) == -1)
¡¡¡¡{
¡¡¡¡printf("Get the stat error on file:%sn", ptr->d_name);
¡¡¡¡continue;
¡¡¡¡}
¡¡¡¡if ((stStatBuf.st_mode & S_IFDIR) && strcmp(ptr->d_name, ".") != 0
¡¡¡¡&& strcmp(ptr->d_name, "..") != 0)
¡¡¡¡{
¡¡¡¡char Path[MAX_PATH];
¡¡¡¡strcpy(Path, pFilePath);
¡¡¡¡strncat(Path, "/", 1);
¡¡¡¡strcat(Path, ptr->d_name);
¡¡¡¡findAllFile(Path);
¡¡¡¡}
¡¡¡¡if (stStatBuf.st_mode & S_IFREG)
¡¡¡¡{
¡¡¡¡printf("¡¡%sn", ptr->d_name);
¡¡¡¡}
¡¡¡¡//this must change the directory , for maybe changed in the recured
¡¡¡¡
¡¡¡¡function
¡¡¡¡chdir(pFilePath);
¡¡¡¡}
¡¡¡¡closedir(dir);
¡¡¡¡}
上面的函数可以得到所有的文件名,那么如果是中文或其它语言的文字怎么办?在VC中定义TCHAR类型就行,在这里如何做!?
|
用标准c, 里面有个wchar类型,可以满足你的要求
|
其实就是unicode和ascii的编码问题
|
其实就是unicode和ascii的编码问题
|
据我所知,是没有的。