【发布时间】:2014-12-27 20:19:50
【问题描述】:
我有这个功能:
void f_listfiles(char temp[200]){
HANDLE hFind;
WIN32_FIND_DATA FindData;
int i;
hFind = FindFirstFile("*", &FindData);
while (FindNextFile(hFind, &FindData))
{
strcpy(temp, FindData.cFileName);
}
FindClose(hFind);
}
我希望它把目录中的文件名放到 char temp 中。之后,我将把它发送到 FTP 客户端。我怎样才能做到这一点?它当前每次都会覆盖,并且只有最后一个文件在 char temp 中。
编辑:我不能使用指针数组,因为我稍后需要使用函数 send(clientSocket, temp, sizeof(temp), 0) 发送这个数组
【问题讨论】:
-
使用需要使用二维数组或指针数组。
-
我不能使用指针数组,因为我稍后需要将此数组发送给客户端。
-
当你说“发送”时,你是什么意思?
-
@JacobÅkerblom:所以?为什么你不能处理?此外:
void f_listfiles(char temp[200])应该是void f_listfiles( char *temp),因为当您将数组传递给函数时,它们会衰减为指针 -
您的
temp数组可以容纳 199 个字符。因此,无论如何,如果您目录中所有文件的长度总和超过 199(这很可能发生),您将无法将所有文件名存储在您的数组中。
标签: c arrays filenames winsock send