Windows上创建硬链接

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

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

源代码:

/* nthl.cpp */
/**
 * 创建硬链接
 *
 * @author XieZhenye
 *
*/
#ifdef _WIN32_WINNT
    #undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x0500

#include
#include
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++才编译出来的。

;>()>;>

Leave a comment