正在加载...

Windows上创建硬链接

[ 2010/09/27 16:33 | by selboo ]

  Unix上可以方便的创建软链接和硬链接。可以提供额外的访问文件的接口而无需复制文件,大大减小了重复文件的空间浪费和维护问题,也减少了大文件复制的开销。
  Windows上只能创建硬链接(快捷方式有点类似软链接,不过还是有不小的区别的),要求Win2000以上,而且只能在NTFS分区上用,也不能跨分区创建链接。但起码比没有好。
  下面这个程序就是用来创建硬链接的。建立以后,修改一下其中一个文件,看一下另一个是不是也一起变了。^_^

  用法:编译以后,比如生成nthl.exe。
     nthl 目标链接 原始文件
  如果发生错误,会输出错误信息。

源代码:

/* nthl.cpp */
/**
* 创建硬链接
*
* @author XieZhenye
*
*/
#ifdef _WIN32_WINNT
    #undef _WIN32_WINNT<br/&#91;separator]>#endif
#define _WIN32_WINNT 0x0500

#include <windows.h>
#include <iostream>
using namespace std;

int main(int argc, char *argv[]){
    if(argc < 3){
        cout<<"not enough arguments. expected 2 but "<<argc<<endl;
        return 0;
    }
    
    if(CreateHardLinkA(argv[1], argv[2], NULL)==0){
        cout<<"Hard link create failed. Error code: "<<GetLastError()<<endl;
    }
    return 0;
}


  程序很简单,但我自己编译的时候碰到了不少麻烦。MS自己的东西,用VC6怎么也编译不通过,最后还是用Dev C++才编译出来的。

最后编辑: selboo 编辑于2010/09/27 16:33
Tags: , , , ,
,
发表评论
表情
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]