Path with shortcut/link

조회 수: 15 (최근 30일)
Jonas
Jonas 2012년 7월 4일
Does Matlab support shortcuts or symbolic links in paths. Example:
/lib_v1.1
/lib_v1.2
/current -> /lib_v1.2
The "current" is a shortcut to the latest version of the lib, but is displayed as current.lnk by the dir command
>> dir
. .. current.lnk lib_v1.1 lib_v1.2
It have no effect when adding the path
addpath(genpath('current'))
and will result in an error by cd
>> cd('current')
??? Error using ==> cd
Cannot CD to current (Name is nonexistent or not a directory).
>> cd('current.lnk')
??? Error using ==> cd
Cannot CD to current.lnk (Name is nonexistent or not a directory).
What are my options?
  댓글 수: 1
Jan
Jan 2012년 7월 5일
Do you need this on a Windows, Linux or MacOS? And if it concerns Windows, could you obtain admin privilegs to create hard-links instead of the not working soft-links?

댓글을 달려면 로그인하십시오.

채택된 답변

Jan
Jan 2012년 7월 5일
Is there any need to create links on the file system? I assume a software solution would be better:
Contents of the base folder:
/lib_v1.1
/lib_v1.2
Program for initializing the path;
current = 'lib_v1.2';
addpath(genpath(current))
Or you could you store the information in a text file:
Contents of the base folder:
/lib_v1.1
/lib_v1.2
/current_lib.txt -> contents: "lib_v1.2"
Program:
Current = fileread('current.txt');
% Perhaps: Current = strtrim(Current);
addpath(genpath(Current))
  댓글 수: 1
Jonas
Jonas 2012년 7월 5일
Thanks Jan for the answer.
Actually I just read you post yesterday regarding project versions and paths.
In the my final solution all the configurations are stored in ini files in the project directory. I have create a collection of matlab functions to read and retrieve entries in the ini files: iniread, iniget, iniany and inigetvpath. The iniany will search for a configuration file and use the first found, and inigetvpath will get the versioned path entry in the ini file. It will use the current version from current.txt if no version is specified in the config file.
Cheers, and thanks for the replies.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2012년 7월 4일
MS Windows does not have true links. The .lnk file you are seeing is processed by Windows Explorer rather than by MS Windows. In order for programs to take .lnk files in to account, the programs have to detect them and make a call to Windows Explorer to do the resolution on behalf of the program.
The situation is quite different in Linux and OS-X, both of which handle symbolic links automatically at the operating system level (and require that programs take extra actions if they want to distinguish symbolic links from regular files.)
  댓글 수: 1
Jonas
Jonas 2012년 7월 5일
So the conclusion is that you can NOT use file paths in Matlab that contain a shortcut on a Windows PC?
Do you have any trick or alternative solution for my problem?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Search Path에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by