2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS FS utility tool
4 * FILE: base/applications/cmdutils/hardlink.c
5 * PURPOSE: FSutil hard links handling
6 * PROGRAMMERS: Pierre Schweitzer <pierre@reactos.org>
11 /* Add handlers here for subcommands */
12 static HandlerProc CreateMain
;
13 static HandlerItem HandlersList
[] =
15 /* Proc, name, help */
16 { CreateMain
, _T("create"), _T("Create a new hard link") },
20 CreateMain(int argc
, const TCHAR
*argv
[])
22 TCHAR Source
[MAX_PATH
], Target
[MAX_PATH
];
24 /* We need a source and a destination */
27 _ftprintf(stderr
, _T("Usage: fsutil hardlink create <new> <existing>\n"));
28 _ftprintf(stderr
, _T("\tFor example: fsutil hardlink create c:\\target.txt c:\\source.txt\n"));
33 if (GetFullPathName(argv
[1], MAX_PATH
, Target
, NULL
) == 0)
35 PrintErrorMessage(GetLastError());
39 if (GetFullPathName(argv
[2], MAX_PATH
, Source
, NULL
) == 0)
41 PrintErrorMessage(GetLastError());
45 /* Simply delegate to kernel32 */
46 if (!CreateHardLink(Target
, Source
, NULL
))
48 PrintErrorMessage(GetLastError());
52 /* Print the status */
53 _ftprintf(stdout
, _T("Hard link created for %s <=> %s\n"), Target
, Source
);
59 PrintUsage(const TCHAR
* Command
)
61 PrintDefaultUsage(_T(" HARDLINK "), Command
, (HandlerItem
*)&HandlersList
,
62 (sizeof(HandlersList
) / sizeof(HandlersList
[0])));
66 HardLinkMain(int argc
, const TCHAR
*argv
[])
68 return FindHandler(argc
, argv
, (HandlerItem
*)&HandlersList
,
69 (sizeof(HandlersList
) / sizeof(HandlersList
[0])),