Haskell removeDirectoryRecursive:Windows上的权限被拒绝
发布时间:2020-12-14 05:28:42 所属栏目:Windows 来源:网络整理
导读:当我在 Windows上使用 removeDirectoryRecursive 时,会抛出类型为PermissionDenied的IOException,并显示消息“removeDirectoryRecursive:permission denied”.我确实拥有删除目录所需的权限.对于具有相同内容的目录,在Linux上不会发生此问题. 解决方法 如果
当我在
Windows上使用
removeDirectoryRecursive 时,会抛出类型为PermissionDenied的IOException,并显示消息“removeDirectoryRecursive:permission denied”.我确实拥有删除目录所需的权限.对于具有相同内容的目录,在Linux上不会发生此问题.
解决方法
如果要删除的目录包含只读文件,则删除这些文件将在Windows上失败,但在Linux上则不会.
有 所以这里有一个小辅助函数来递归地使文件可写.它可以在调用removeDirectoryRecursive之前使用. import Control.Monad (forM_,when) import System.FilePath ((</>)) import qualified System.Directory as FileSystem -- Recursively makes all files and directories in a directory writable. -- On Windows this is required to be able to recursively delete the directory. makeWritableRecursive :: FilePath -> IO () makeWritableRecursive path = do permissions <- FileSystem.getPermissions path FileSystem.setPermissions path (FileSystem.setOwnerWritable True permissions) isDirectory <- FileSystem.doesDirectoryExist path when isDirectory $do contents <- FileSystem.listDirectory path forM_ [path </> item | item <- contents] makeWritableRecursive (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 自己托管的信号器是否需要Windows Server 2012才能使用webs
- windows-mobile – 在WinMobile手机中访问GPS功能
- .net – AppFabric 1.1缓存(崩溃的Windows服务)
- C盘清理小程序制作
- windows-server-2016 – 存储空间:Optimize-Volume需要数天
- charles 的安装和手机配置 (我用的win7系统 ,和 iphone8
- windows-server-2008-r2 – 如何在Server 2008 R2中进入待机
- Windows – VBA如何获取当前用户应用程序数据文件夹的路径?
- windows – Win32资源文件多个翻译
- windows-phone-8 – 如何获得Windows Phone 8设备的屏幕尺寸