• Windows上创建硬链接

    2006-12-18 20:21

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://syre.blogbus.com/logs/4081353.html

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

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

    源代码:

    /* nthl.cpp */
    /**
     * 创建硬链接
     *
     * @author XieZhenye
     *
    */
    #ifdef _WIN32_WINNT
        #undef _WIN32_WINNT
    #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++才编译出来的。

    引用地址:

    引用

    下面Blog引用了该文:
  • fsutil

    Blog:仙居
    2007-12-01 20:53:57

发表评论

您将收到博主的回复邮件
记住我