我只是想写一个简单的程序来清除我的" Path"文件夹exept为2 .exe文件预选。问题是我只成功删除了第一个(file1.exe)。 我究竟做错了什么?请原谅我,如果我使用的是逻辑运算符,但在这一刻就像我的脑袋即将爆炸......
function load_recipients() {
return $.ajax({
url: base_url + "recipients/get/",
type: "POST",
data: {
packets_id : packets_id
},
success: function(response_data) {
recipient_list = JSON.parse(response_data);
if(recipient_list.hasOwnProperty('error')) {
// Make ALL functions stop and throw error message
} else {
console.log("Everything is fine");
}
},
error: function(jqXHR){
// Make ALL functions stop and throw error message
}
});
}
答案 0 :(得分:3)
根据您的情况使用&&
代替||
。
if (name != "file1.exe" && name != "file2.exe")
您还可以使用LINQ表达式过滤掉文件,如:
var filePaths = Directory.GetFiles(Path)
.Where(r=> !r.Equals("file1.exe", StringComparison.InvariantCultureIgnoreCase)
&& !r.Equals("file2.exe", StringComparison.InvariantCultureIgnoreCase));
然后你可以这样做:
foreach (string filePath in filePaths)
{
File.Delete(filePath);
}
答案 1 :(得分:0)
你基本上是在说,如果名字不等于" file1.exe"或者名字!=" file2.exe"然后删除文件路径,问题是您正在使用OR逻辑运算符,因此它只删除一个。尝试使用&&。