Вопрос

Я хочу создать символические ссылки (программные ссылки) из Java на компьютере с Windows Vista / 2008.Я доволен идеей, что мне нужно обратиться к JNI, чтобы сделать это.Однако мне нужна помощь по самому C-коду.Какой системный вызов подходит для создания ссылки?Мы были бы очень признательны за указания на какую-нибудь хорошую документацию по этому вопросу.

Другие советы

Это было в моем списке, чтобы попробовать, судя по моим заметкам:

API - интерфейс:

http://msdn.microsoft.com/en-us/library/aa363866 (ПРОТИВ 85).aspx

BOOLEAN WINAPI CreateSymbolicLink(
  __in  LPTSTR lpSymlinkFileName,
  __in  LPTSTR lpTargetFileName,
  __in  DWORD dwFlags
);

Некоторые примеры C #:

http://community.bartdesmet.net/blogs/bart/archive/2006/10/24/Windows-Vista-2D00-Создание-символических-ссылок-с помощью-C_2300_.aspx

Пример C ++, это cnp из другой статьи, которую я читал.Я не тестировал его, поэтому используйте с осторожностью.

typedef BOOL (WINAPI* CreateSymbolicLinkProc) (LPCSTR, LPCSTR, DWORD);

void main(int argc, char *argv[]) 
{
  HMODULE h;
  CreateSymbolicLinkProc CreateSymbolicLink_func;
  LPCSTR link = argv[1];
  LPCSTR target = argv[2];
  DWORD flags = 0;

  h = LoadLibrary("kernel32");
  CreateSymbolicLink_func =
    (CreateSymbolicLinkProc)GetProcAddress(h,
  if (CreateSymbolicLink_func == NULL) 
  {
     fprintf(stderr, "CreateSymbolicLinkA not available\n");
  } else 
  {
     if ((*CreateSymbolicLink_func)(link, target, flags) == 0) 
     {
        fprintf(stderr, "CreateSymbolicLink failed: %d\n",
        GetLastError());

  } else 
  {
     printf("Symbolic link created.");
  }
}

}

Сказав это, я бы не стал использовать этот код :-) Я был бы либо склонен раскошелиться на mklink, либо посмотреть собственную библиотеку из jruby / jpython (извините, я не могу найти ее в банкомате, так как мое сетевое соединение ненадежное).Кажется, я припоминаю, что jruby написал библиотеку, которая оборачивает различные posix API в java (похоже на chown, которые необходимы для соответствия ruby, но не являются кроссплатформенными).Этой библиотекой пользуются сотрудники jpython, которые, похоже, очень довольны ею.Я был бы удивлен, если бы эта библиотека не предлагала поддержку sym-ссылок.

Не могли бы вы просто вызвать командную строку и использовать mklink ?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top