- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在迭代本地目录时(根据到位的错误检查),我遇到了无效文件错误,但是我无法准确找出导致此问题的原因。有什么明显的原因可能导致这种情况吗?
#define MAX_PATHNAME_LEN 260
int main(int argc, char* argv[])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE;
DWORD dwError;
char DirSpec[MAX_PATHNAME_LEN];
argv[0] = "\N:\\Joe\\My Documents\\";
snprintf(DirSpec, "%s\\*", argv[0]);
// Find the first file in the directory.
hFind = FindFirstFile(DirSpec, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf("Invalid file handle. Error is %u.\n", GetLastError());
return (-1);
}
else
{
printf("First file name is %s.\n", FindFileData.cFileName);
// List all the other files in the directory.
while (FindNextFile(hFind, &FindFileData) != 0)
{
printf("Next file name is %s.\n", FindFileData.cFileName);
}
dwError = GetLastError();
FindClose(hFind);
if (dwError != ERROR_NO_MORE_FILES)
{
printf("FindNextFile error. Error is %u.\n", dwError);
return (-1);
}
}
return (0);
}
目录是正确的,但似乎无法正确扫描文件夹内。我正在使用 Visual Studio 2019 来编写/编译它。
最佳答案
首先,您不需要定义
#define MAX_PATHNAME_LEN 260
Windows 已经定义了
#define MAX_PATH 260
其次,如果您要在前面加上 N:
驱动器,因为它是网络共享,因此需要是 \\\\N:\\
,这样转义字符串就是\\N:\
.
第三,您确实不应该写信给 argv[]
。 C 标准绝对没有规定它是可写的,并且您无法知道是否正在注销缓冲区的末尾。改用这个:
char basePath[] = "\\\\N:\\Joe\\My Documents\\";
您调用snprintf(DirSpec, "%s\\*", argv[0]);
不包括目标缓冲区的长度,因此如何计算是一个不确定的问题。尝试一下
snprintf(DirSpec, MAX_PATH, "%s*", basePath);
请注意,反斜杠已从格式字符串中删除,因为 FindFirstFile()
的目录内容的通配符功能是 DirPath\*
,并且您的基本路径已经以反斜杠结尾。
关于c - 在 Windows 上迭代目录时查找句柄无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55875203/
我设置了 Helm 柄和 Helm 柄。我有tiller-deploy。昨天,我可以定期运行了。但今天我收到此错误消息 Error: could not find a ready tiller pod
我以前已将分er安装到特定的 namespace 中。 我设置了一个环境变量来设置'tiller'命名空间-但我不记得该环境变量的名称-而且似乎无法通过网络搜索找到它。 这是什么 key ? 最佳答案
当我在 View 模型中使用如下界面时 class MainViewModel @ViewModelInject constructor( private val trafficImagesR
我正在尝试找到如何在某个 fragment 相关场景中定义 Hilt 的解决方案。我有以下设置: Activity 父 fragment 1 子 fragment 1 子 fragment 2 ...
Hilt 指出如果没有@Provides 注解就不能提供这个接口(interface): interface PlannedListRepository { fun getAllLists()
我的问题非常简单明了:两个注释/示例之间有什么区别: 例子一 @Singleton class MySingletonClass() {} @Module @InstallIn(FragmentCom
我是一名优秀的程序员,十分优秀!