61阅读

无法删除的文件夹-php删除上传的图片及文件夹

发布时间:2018-01-09 所属栏目:编程

一 : php删除上传的图片及文件夹

删除上传的图片及文件夹,主要的函数有file_exists(),unlink(),rmdir()等。

对于这三个文件,一开始我使用了“http://localhost/test”作为变量传递,结果在虚拟空间里运行出错:

Warning: unlink() [function.unlink]: http does not allow unlinking in D:……

讨教了别人后,才知道不能使用网址作为参数,于是改用了绝对地址,就解决问题了。可以删除上传的图片,以及图片所在的文件夹。

简单测试代码如下:

以下为引用的内容:

<?php
//wangsu820@163.com
//2008-08-28
 $folder = "D:p8-serverwwwroot"."testimage";
 if( !file_exists( $folder ) )
 {
 if( !mkdir( $folder,777 ) )
 {
  echo "mkdir $folder (mode:777) error<br />";
 }
 else
 {
  echo "mkdir $folder (mode:777) okay<br />";
 }
 }

 $filename = "aaa.jpg";
 $filepath = $folder . "" . $filename;
 if( !file_exists( $filepath ) )
 {
 die( "$filepath not exist<br />" );
 }
 else
 {
 echo "<img src="$filepath" alt="picture" /><br />";
 echo "<p>deleting $filepath ......</p>";
 if( !unlink( $filepath ) )
 {
  echo "unlink $filepath error<br />";
 }
 else
 {
  echo "unlink $filepath okay<br />";
  if( !rmdir( $folder ) )
  {
   echo "rmdir $folder error<br />";
  }
  else
  {
   echo "rmdir $folder okay<br />";
  }
 }
 }
?>

如果上传到虚拟空间,则可能会由于文件夹的权限问题导致不能删除图片和文件夹。这里我是用了777,可能一般的虚拟空间上的都是660吧,可以改成770,实在不行就改成777吧,虽然不安全了些。

二 : 用Unlocker删除无法删除的文件

有时候,我们在删除文件时,会弹出下图所示的对话框(如图1),提示说当前文件无法被删除,但关键是一时之间却无法找到哪些程序或进程正在访问这个文件。

图1

也许你会说:“分析进程,把那些调用该文件的进程关闭就行了!”但作为一般的电脑用户,也许对进程并不熟悉或者当这个你想要删除的文件关联到多 个进程,甚至包含有隐藏进程的时候,你要对进程进行分析,也许就会比较麻烦,特别是一些病毒或恶意程序或受病毒感染的文件,并不是那么“简单”就会直接给 你删除掉它们。那么这个时候我们就非常需要一个普通用户就会使用的小软件,帮我们把那些程序“撬”出来,然后我们就可以轻松关闭这些程序,接着删除那些不 要的文件。

在此推荐大家使用Unlocker ,有了它你就可以轻松、方便、有效地解决这个虽小但很烦人的问题了!

一、软件速览

软件名称:Unlocker

软件大小:1.56MB

软件授权:免费版

运行环境:Win7/Win2003/WinXP/Win2000/

软件介绍:Unlocker是一个免费的右键扩充工具,当用户发现有文件或进程无法删除时,可以通过右键菜单中的“Unlocker”进行解锁,不过它并非强制关闭的程序,而是以解除进程与程序关联性的方式进行,因此不会造成数据丢失。

二、使用软件

从网上下载安装程序后,点击安装。安装完以后,Unlocker就直接与鼠标右键结合了(如图2)。

图2

以后当你要删除文件的时候,右键选择Unlocker 即可。

应用1:删除顽固文件

我们在WINDOWS的日常操作中可能会遇到这样的问题:某个文件怎么都删不掉,系统总是提示文件正在使用中,但关键是一时之间却无法找到哪些 程序或进程正在访问这个文件(如图1)。这时我们就可以用Unlocker这个工具来删除这些文件。在所要删除的文件上单击鼠标右键,点击 “Unlocker”选项,在弹出的窗口中(如图3)单击“解锁”或“全部解锁”按钮。

图3

如果出现“文件被移到回收站里”的对话框(如图4),说明文件被成功删除了。

图4

如果出现“文件不能被删除,在下次重新启动时,你想执行删除操作吗?”对话框(如图5),点击“是”按钮,文件将在下次系统启动时自动被删除。

图5

如果没有文件或文件夹被某进程锁定,那么直接在窗口的左下角点击其小三角形,在下拉列表框中选择“删除”操作就可以了。

应用2:安全删除移动设备

U盘,移动硬盘已经成为我们计算机使用中不可缺少的一部分,我相信大家在使用这些移动存储设备时,一定遇到过过这样的烦恼,明明已经不再访问闪存盘或移动硬盘,但却无法正常删除,即使尝试多次仍然无效(如图6)。

图6

很多人遇到这种情况时都是直接拔掉U盘,这样其实对U盘和电脑都是不好的。

不过,如果你有Unlocker这个工具,那么事情就简单了。 打开“我的电脑”窗口,选择闪存盘所在的盘符,从右键菜单中执行“Unlocker”,从这里可以清楚地看出当前正在访问移动设备的进程(如图7),单击 “解锁”或“全部解锁”按钮,这样,你再次点击任务栏右边的安全删除硬件的图标时,就可以安全删除了。如果没有文件或文件夹被某进程锁定,那么直接在下拉 列表框中选择“删除”操作就可以了。

图7

此外,从1.8.0版本开始,默认设置下安装程序会自动安装一个名为Assistant(助手)的组件,有些朋友觉得这个组件似乎有些“流氓” 的意味,其实您大可不必担心,它是Unlocker助手组件,还是比较实用的。官方网站是这样解释Assistant(助手)作用的:Unlocker助 手可以在你试图删除或者移动文件时自动启动Unlocker来提示用户当前操作的文件被哪些进程锁住,这样就免去了用户单击右键的麻烦。

在我们刚开始安装软件的过程中就会提示是否需要安装“助手”(如图8),您可以自行选择是否安装相关的组件,然后再点击“安装”即可。

图8

如果选择安装Unlocker助手的话,完成安装以后就会在桌面的右下角的托盘中出现其图标,如果您不想它随软件自启动的话,只需在图标上点击其右键将“自动启动”取消即可,并不会有什么大的影响。

三、小结

总的来说,Unlocker的功能还是非常实用的,其实Unlocker的最好的应用就是在病毒的查杀方面,它可以比较容易的删除正在运行的病毒文件,从而达到完全清除系统病毒的目的。

但这里要提醒的是,你必须确定即将删除的文件确实已经不再需要,另外就是Unlocker只能删除单个文件而无法删除文件夹。如果你也有这方面的小烦恼的话,就请Unlocker来帮忙吧,它可以帮你轻松解决此类问题哦!

三 : 关于VMwareView中composer在VC清单生成的replica无法删除

本次版本是view 5

问题描述

原本用view administrator新建了1个自动桌面池,通过linkclone创建了几台虚拟机。随后又想删除此pool,但操作中虚拟机能够自动删除,linkclone的母版replica-50ac4933-3837-441a-9e67-0cda7194d5cf却未自动清掉。只好手动删,而这个母版replica-50ac4933-3837-441a-9e67-0cda7194d5cf只是composer生成虚拟机之际用得虚拟机镜像,是被保护的,无法启动和删除等操作。

解决方法

查找官方KB,有个跟这个问题差不多,大概翻译一下内容,view composer期间通过view connectionserver在创建,管理和删除linked clones时,如果服务器操作中断,linkedclones产生的孤立的文件夹、受保护的文件夹以及虚拟机对象仍然存在于VCenter中。可以通过unprotectentity 命令去删除受保护的linkedclone对象。

命令行路径:VCenter的composer安装目录

32-bit servers: C:\Program Files\VMware\VMware View Composer

64-bit servers: C:[www.61k.com]\Program Files (x86)\VMware\VMware ViewComposer

基本命令:

sviconfig-operation=unprotectentity-VcUrl=https://<VirtualCenteraddress>/sdk -Username=<VirtualCenteraccount name>-Password=<VirtualCenter accountpassword> -InventoryPath=/<Datacentername>/[vm|host]/<foldername>-Recursive=[true|false]

实例:

C:\Program Files (x86)\VMware\VMware ViewComposer>sviconfig -operation=unprotectentity-VcUrl=https://localhost/sdk -Username=admin -Password=admin-InventoryPath="/DataCenter/vm/VMwareViewComposerReplicaFolder/replica-50ac4933-3837-441a-9e67-0cda7194d5cf"-Recursive=true

WARNING: Unprotecting VC managed entities will allowoperations
(power on, delete, migrate) that can cause existing linked clonesconnected
to those managed entities to fail to work correctly.
Establishing connection to the VC server.
VC server connection established successfully.
Looking for the entity on the VC server.
VirtualMachine found.
VirtualMachine with MoId vm-89 sucessfully unprotected.
SviConfig finished successfully.
Successfully unprotected entities: 1
Fail to unprotect entities: 0

C:\Program Files (x86)\VMware\VMware ViewComposer>

OK,去vcenter中发现可以对replica-50ac4933-3837-441a-9e67-0cda7194d5cf执行启动和删除等操作了。

问题解决!

PS:命令行很强大,需多研究!

官方KB链接:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1008704

本文标题:无法删除的文件夹-php删除上传的图片及文件夹
本文地址: http://www.61k.com/1170200.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1