回答
这是为这种情况的算法。
- 检查文件夹是否存在。
- 如果文件夹存在,则将该文件夹命名为其他名称或向其添加一个随机数。
创建新文件夹。
试试这个。
mkdir ("./files/$username");
不是那些相同的文件夹?文件/ Alex和文件/ Alex /是相同的。你的意思是文件/ $用户名和文件/ $用户名/文件?你正在做同样的目录两次,所以这是错误
这些是我已经尝试过的两种不同的东西 – Primm 2012-07-25 20:00:48
转到命令行并执行mkdir文件/测试然后在不更改目录的情况下执行mkdir文件/ test /您将得到相同的错误 – 2012-07-25 20:02:32
如果你在Linux或MacOs上,还有另一种情况,将调用你的shell的mkdir函数。
它会看起来像:
system('mkdir -p yourdir/files/$username')
首先,什么是$username
的实际价值?你是否证实它不是空的?
像这样处理文件系统会导致几个不同的问题。我喜欢进行很多额外的检查,所以如果出现问题,我会更容易知道原因。我也喜欢在可能的情况下处理绝对目录名称,所以我不会遇到相对路径问题。
$filesDir = '/path/to/files';
if (!file_exists($filesDir) || !is_dir($filesDir)) {
throw new Exception("Files directory $filesDir does not exist or is not a directory");
} else if (!is_writable($filesDir)) {
throw new Exception("Files directory $filesDir is not writable");
}
if (empty($username)) {
throw new Exception("Username is empty!");
}
$userDir = $filesDir . '/' . $username;
if (file_exists($userDir)) {
// $userDir should be all ready to go; nothing to do.
// You could put in checks here to make sure it's
// really a directory and it's writable, though.
} else if (!mkdir($userDir)) {
throw new Exception("Creating user dir $userDir failed for unknown reasons.");
}
mkdir()
有一些非常有用的选项,用于设置权限并使文件夹层次更深。如果你还没有,请查看PHP's mkdir page。
为了安全起见,请确保您的例外情况不会向最终用户透露系统路径。当您的代码进入公共服务器时,您可能希望从错误消息中删除文件夹路径。或者配置一些东西,以便您的例外被记录但不会显示在网页上。
- 1. 制作文件夹和复制文件
- 2. 忽略svn控制文件夹中的文件和文件夹?
- 3. powershell复制文件夹中的所有文件夹和文件
- 4. 从URL制作文件夹名称php
- 5. 使该文件夹中的文件夹和子文件夹
- 6. 制作〜/引用根文件夹(与web.config相同的文件夹)
- 7. htaccess中的“文件夹的文件夹”
- 8. 控制器子文件夹中的子文件夹和路线
- 9. .bat文件复制文件夹到文件夹留出某些文件夹
- 10. Filsystem - 在文件夹下的文件夹,文件夹...
- 11. 使用powershell移动/制作基于文件名的文件夹/子文件夹
- 12. htaccess删除文件夹的文件夹
- 13. PHP根文件夹
- 14. 将一个文件复制到文件夹中的所有文件夹?
- 15. 包含从根文件夹中的子文件夹中的PHP文件
- 16. 如何将文件夹和子文件夹中的文件复制到R中的另一个文件夹?
- 17. 如何制作从源文件夹中绘制的jar文件
- 18. res文件夹中的可绘制文件夹?
- 19. 复制R中子文件夹的文件夹
- 20. 限制文件夹
- 21. 将文件从源文件夹复制到目标文件夹
- 22. Powershell复制文件夹和文件,并重新创建父文件夹作为子文件夹
- 23. 将文件夹从一个文件夹复制到一个新文件夹
- 24. PHP - 阅读文件夹,所有子文件夹和子文件夹中的文件
- 25. 从文件夹和子文件夹中删除文件
- 26. 将源文件夹中的文件复制到不同的目标文件夹
- 27. PHP无法将文件复制到Windows中的Dropbox文件夹
- 28. 如何将旧文件夹复制到新文件夹并重命名新文件夹中的文件
- 29. 在输出文件夹中制作Eclipse复制源文件
- 30. 计算文件夹内的文件夹
也许文件夹已经存在,你想先检查一下吗? – Ibu 2012-07-25 19:47:17
它不!我试着用差异用户名,每次它不存在 – Primm 2012-07-25 19:47:34
看起来你应该添加一个检查周围的mkdir如果目录存在,或者可能抑制错误/警告 – ernie 2012-07-25 19:47:37