PHP 8.5.8 Released!

发现了问题?

了解如何改进此页面提交拉取请求报告一个错误
+添加备注

用户贡献的备注 3 notes

up
0
Jasper Bekkers
19 years ago
For a backup utility I needed link-like functionality on a windows system. As it isn't availible on windows, i tried to do it myself with the help of some tools. All you need is junction.exe from sysinternals in your %PATH%.
<?php
if(!function_exists('link')){ // Assume a windows system
 function link($target, $link){
 if(is_dir($target)){
 // junctions link to directories in windows
 exec("junction $link$target", $lines, $val);
 return 0 == $val;
 }elseif(is_file($target)){
 // Hardlinks link to files in windows
 exec("fsutil hardlink create $link$target", $lines, $val);
 return 0 == $val;
 }
 
 return false;
 }
}
?>

http://www.sysinternals.com/Utilities/Junction.html 
up
-1
Anonymous
16 years ago
to clarify:
in unix/linux:
hardlinks (by this function) cannot go across different filesystems.
softlinks can point anywhere.
in linux, hardlinking to directory is not permited.
up
-1
Guilherme Garnier
20 years ago
I noticed that, differently from Unix ln command, the second parameter can ́t be a directory name, i.e., if you want to create a link with the same filename of the target file (obviously on different directories), you must specify the filename on the link parameter.
Example:
Unix ln command:
ln /dir1/file /dir2/ // ok, creates /dir2/file link
PHP link function:
link ("/dir1/file", "/dir2/"); // wrong, gives a "File exists" warning
link ("/dir1/file", "/dir2/file"); // ok, creates /dir2/file link
+添加备注

AltStyle によって変換されたページ (->オリジナル) /