Question
在 Windows C 应用程序中,我想验证传递给函数的参数以确保指定的路径存在。*
如何用 C 语言检查 Windows 上的目录是否存在?
*我知道你可能会陷入竞争条件,在你检查路径是否存在和使用它不再存在的时间之间,但我可以处理这个问题。
其他背景
当权限发挥作用时,明确知道目录存在或不存在可能会变得很棘手。在尝试确定该目录是否存在时,该进程可能没有访问该目录或父目录的权限。这可以满足我的需求。如果该目录不存在或者我无法访问它,则两者在我的应用程序中都被视为无效路径失败,因此我不需要区分。如果您的解决方案提供了这种区别,则可以获得(虚拟)奖励积分。
C 语言、C 运行时库或 Win32 API 中的任何解决方案都可以,但理想情况下我想坚持使用通常加载的库(例如 kernel32、user32 等)并避免涉及加载非标准库的解决方案(喜欢路径文件存在 http://msdn.microsoft.com/en-us/library/bb773584%28v=vs.85%29.aspx在 Shlwapi.dll 中)。再次强调,如果您的解决方案是跨平台的,(虚拟)奖励点。
Related
我们如何使用 Win32 程序检查文件是否存在? https://stackoverflow.com/questions/3828835/how-can-we-check-if-a-file-exists-or-not-using-win32-program
做这样的事情:
BOOL DirectoryExists(LPCTSTR szPath)
{
DWORD dwAttrib = GetFileAttributes(szPath);
return (dwAttrib != INVALID_FILE_ATTRIBUTES &&
(dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
}
The 获取文件属性 http://msdn.microsoft.com/en-us/library/aa364944%28v=vs.85%29.aspx() 方法包含在 Kernel32.dll 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)