amarao (amarao_san) wrote,
amarao
amarao_san

replist: reparse points listing (symlink list for NTFS)

Судорожно пытался найти исходник этой программы. Нашёл в давно забытом бэкапе флешки (которой у меня уже нет).

Вот он. Программа выводит список всех reparse point'ов в заданном каталоге.

replist.c
/** (c) George Shuklin, 2006, GNU GPL **/
#include <windows.h>
#include <winioctl.h>
#include <stdlib.h>
#include <stdio.h>

void GenerateList(char* home){
        char search_path[MAX_PATH*2+1];
        char new_dir_name[MAX_PATH*2+1];
        WIN32_FIND_DATA data;
        snprintf(search_path,MAX_PATH*2,"%s\\*",home);
        HANDLE h = FindFirstFile(search_path,&data);
        if(!h)
                return;
        do{
                if(!strcmp(data.cFileName,".")||!strcmp(data.cFileName,"..")){
                        /*pass*/
                }
                else{
                        if(data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT){
                                printf("%s\\%s\n",home,data.cFileName);
                        }
                        else if( data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ){
                                snprintf(new_dir_name,MAX_PATH*2,"%s\\%s",home,data.cFileName);
//                              printf("debug:%s\n",new_dir_name);
                                GenerateList(new_dir_name);
                        }
                }
        }while(FindNextFile(h,&data));
        FindClose(h);
}

int main(int argc, char* argv[]){
        if(argc<2){
                printf("replist - reparse points list\nUsage: path to scan\n");
                return 0;
        }
        GenerateList(argv[1]);
        return 0;
}

Tags: ntfs, replist, администрирование
Subscribe

Recent Posts from This Journal

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments