windows 2003 resource kit tools中提供了很多不错的工具,其中的linkd可以实现文件夹硬链接(或者说是文件夹挂载,不好意思没法准确描述)的功能,我对它的实现很感兴趣,可始终猜不透它到底是怎么实现的。
不错ntfs的确可以实现卷的挂载,但对与普通文件夹该怎么处理?
兄弟能否提供个思路,介绍个api也是好的。
不错ntfs的确可以实现卷的挂载,但对与普通文件夹该怎么处理?
兄弟能否提供个思路,介绍个api也是好的。
解决方案 »
- 初学者请教,如何在基于单文档,ODBC类下读取数据库中的数据
- 如何给VC的插件的TOOLBAR上添加图片?
- 在一个程序中运行其他的exe文件用什么函数?得到其他exe文件是否运行用什么函数?
- 源代码里或是资源里,怎样输入特殊字符,如 S2(s的平方)、根号S等 ?
- 关于dll中函数的参数的问题!
- xp VS2010编译的ADO无法再win 2008上使用
- help!!问题简单就是搞不出来!再搞不出来今年就残了!!!
- cast/stl
- 超级菜鸟求救:如何给一个工具栏(CToolBar)的按钮加上ToolTips和状态栏说明功能.
- CRecordView中如何显示日期
- 网上有朋友推荐用vc++写程序,然后用flash做界面,它们之间通过xml流进行通讯。各位觉得如何?请发表意见
- 错误2147319779,对象库未注册
http://msdn.microsoft.com/en-us/library/aa365006(VS.85).aspx
不过我看那个函数还是没有办法对目录进行操作。BOOL WINAPI CreateHardLink(
__in LPCTSTR lpFileName,
__in LPCTSTR lpExistingFileName,
__reserved LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
Parameters
lpFileName [in]
The name of the new file. This parameter cannot specify the name of a directory.lpExistingFileName [in]
The name of the existing file. This parameter cannot specify the name of a directory.lpSecurityAttributes
Reserved; must be NULL.
道理很简单,加入文件夹可以硬链接,a和b目录下一个一个文件夹c和d,a\c->b,b/d->a,那文件夹就乱套了,任何一个文件和文件夹只允许一个父目录,所以目录的硬链接是不可能的。linux下也一样道理。2.windows resources kit tools提供的link和sysinternal提供的junction都是对文件夹的软链接。但有两个限制:
1.路径是ASCII;
2.源文件夹所在卷文件系统是ntfs;
3.源目录必须为空。
可惜都没有办法弄到它们的源代码,软链接微软居然也不给出应用层的接口。windows vista和windows 2008有一个针对文件的软链接函数(不是快捷方式)
BOOL WINAPI CreateSymbolicLink(
__in LPCWSTR lpSymlinkFileName,
__in LPCWSTR lpTargetFileName,
__in DWORD dwFlags
);回帖给分!