macOS之如何删除插⼊u盘后会⽣成的._开头的隐藏⽂件
褒义成语大全macOS之如何删除插⼊u盘后会⽣成的._开头的隐藏⽂件
概述
当你的移动存储设备插⼊Mac电脑中时,修改⾥⾯的⽂件就会在⽣成的⽂件⾥多增加了⼀个._开头的隐藏⽂件,当在window下显⽰隐藏⽂件就可以查看到,虽然没啥影响,但是如果有特殊开发需求的项⽬来说,这多余的⽂件将会造成很⼤的困扰。⽬前⽹上的⽅法关闭⽣成都没啥⽤,唯⼀的办法就是将⽣成的⽂件全部删除。
删除⽅法
⾸先需要遍历所有的⽂件,拿到所有⽂件的路径
/// 获取⽂件路径
/// - Parameter dirPath: 根⽬录
/// - Returns: 路径数组
func getAllFilePath(_ dirPath:String)->[String]{
2020高考志愿填报var filePaths =[String]()
let manger =FileManager.default
do{
let fileIsExists = manger.fileExists(atPath: dirPath)
if fileIsExists {
if FileManager.directoryIsExists(path: dirPath){
filePaths.append(dirPath)
let rootarray =tsOfDirectory(atPath: dirPath)
for root in rootarray{
filePaths.append(contentsOf:getAllFilePath(dirPath+"/"+root))
}
}else{
filePaths.append(dirPath)六稳六保指的是什么
}
}
}catch let error as NSError{
print("get file path error: \(error)")
}
return filePaths
}
这⽅法遍历是拿不到隐藏的._⽂件的,但是隐藏⽂件都是在这些⽂件的前⾯加了._根据这个规律,我们可以⼿动将遍历的⽂件夹路径修改为._开头的⽂件路径,这样就可以逐⼀删除了。
⾸先,扩展下string,拿到⼦字符串在此字符串中的索引:
extension String{
//返回第⼀次出现的指定⼦字符串在此字符串中的索引
//(如果backwards参数设置为true,则返回最后出现的位置)
func positionOf(sub:String, backwards:Bool=false)->Int{
var pos =-1
if let range =range(of:sub, options: backwards ?.backwards :.literal ){
if!range.isEmpty{
pos =self.distance(from:startIndex, to:range.lowerBound)
}
}
return pos
}
}
重新修改路径列表,使其修改为对应隐藏⽂件的路径:
///清除⾃动⽣成的隐藏⽂件
func clearHideFile(_ path:String){
let allfile =getAllFilePath(path)
for index in allfile.indices{
var data = allfile[index]
//拿到对应的位置
let dataIndex = data.index(data.startIndex, offsetBy: data.positionOf(sub:"/", backwards:true)+1) //在最后⼀个/位置后添加._
data.insert(contentsOf:"._", at: dataIndex)
print(data)李晨人品
//删除即可
try?veItem(at:URL(fileURLWithPath: data))
大尺度娱乐节目}
}
袁立透视蕾丝
到此就能将._的⽂件都删除掉了,⼤功告成。