代码与法律
https://www.zhihu.com/question/12523235406 我在QQ群里找人替我定制软件。过了段时间他说好了,就下载了他的脚本。他要求我付款,我没有付款。然后我运行了那个脚本,检验他的功能对不对。后来发现功能错了。联系那人又不在线。如果他告我没付款,我说他的软件功能不对,等他功能改正了再付款,改正之前不付。法律是否支持?谁能证明他的功能不对,也许换了台电脑功能又正常了?
要求的功能:逐字节比较两文件二进制数据,从头到尾相同位置完全相等就是相同文件。
a目录有的文件,就只留一份,其他相同的删除。a目录没有的,b目录里面的,就只保留b目录的
function Compare-FilesByteByByte {
param (
$FilePath1,
$FilePath2
)
# 检查文件大小是否相同
$file1Size = (Get-Item $FilePath1).Length
$file2Size = (Get-Item $FilePath2).Length
if ($file1Size -ne $file2Size) {
return $false
}
# 打开文件流
$stream1 = ::OpenRead($FilePath1)
$stream2 = ::OpenRead($FilePath2)
try {
# 逐字节比对
for ($i = 0; $i -lt $file1Size; $i++) {
$byte1 = $stream1.ReadByte()
$byte2 = $stream2.ReadByte()
if ($byte1 -ne $byte2) {
return $false
}
}
return $true
}
finally {
# 关闭文件流
$stream1.Close()
$stream2.Close()
}
}
function Remove-DuplicateFiles {
param (
]$Folders
)
# 用于存储已检查的文件路径
$checkedFiles = @()
# 遍历所有文件夹
foreach ($folder in $Folders) {
# 获取文件夹中的所有文件
$files = Get-ChildItem -Path $folder -Recurse -File
foreach ($file in $files) {
$isDuplicate = $false
# 与已检查的文件逐字节比对
foreach ($checkedFile in $checkedFiles) {
if (Compare-FilesByteByByte -FilePath1 $file.FullName -FilePath2 $checkedFile) {
$isDuplicate = $true
Write-Host "发现重复文件: $($file.FullName) 与 $checkedFile"
# 删除当前文件
Remove-Item -Path $file.FullName -Force
Write-Host "已删除文件: $($file.FullName)"
break
}
}
# 如果文件不是重复的,则添加到已检查的文件列表中
if (-not $isDuplicate) {
$checkedFiles += $file.FullName
}
}
}
}
# 文件夹路径
$folderA = "C:\Users\Administrator\Documents\新建文件夹 (2)"
$folderB = "C:\Users\Administrator\Desktop\新建文件夹2"
$folderC = "D:\"
Remove-DuplicateFiles -Folders @($folderA, $folderB, $folderC)
页:
[1]