简体   繁体   中英

PHP windows create hidden files

Is it possible to create hidden files/folders on windows using php (xampp)? And if it is, how?

A file in Windows is hidden if it has the hidden attribute set on it. There is no built in function to do this, so you need to use system / exec to execute the attrib application. Like this:

$file = 'test.txt';
system('attrib +H ' . escapeshellarg($file));

This will set the hidden (+H) flag on test.txt.

You could call attrib :

$filename = 'c:\\some\\file.txt';
exec('attrib +h '.$filename);
// set HIDDEN attribute of file on Windows
$file = 'path/to/file.ext';
$file = str_replace('/', '\\', $file);
unset($res);
exec('attrib +H ' . escapeshellarg($file), $res);
$res = $res[0];
//$res contains result string of operation

Hints:
Replacing '/' with '\\' is important as the shell command (attrib) is not as tolerant to slashes as PHP is.
$res is unset first because exec() appends to any existing value.

If you are looking for a way to set a file to read-only that will work on Windows AND *nix, then have a look at my answer to this other question: https://stackoverflow.com/a/27127640/430742

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM