주어진 파일에 대해 MD5 및 SHA1 체크섬을 계산하는 메서드를 실행하는 동안 문제가 있습니다. 내 방법은 다음과 같이 :
SHA1을 :MD5 및 SHA1 체크섬을 계산하는 동안 IOException이 발생했습니다.
public string HashFile(string toHash)
{
SHA1 SHA1ENGINE = SHA1.Create();
byte[] hashBytes = SHA1ENGINE.ComputeHash(File.Open(toHash, FileMode.Open, FileAccess.Read));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("X2"));
}
return sb.ToString();
}
MD5 : 프로세스가 파일을 액세스 할 수 없습니다 '(:
public string HashFile(string toHash)
{
MD5 MD5ENGINE = MD5.Create();
byte[] hashBytes = MD5ENGINE.ComputeHash(File.Open(toHash, FileMode.Open, FileAccess.Read));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("X2"));
}
return sb.ToString();
}
다음 방법 중 하나를 실행하는 동안 나는 IOException를 얻을 PATHTOFILE) '이 다른 프로세스에서 사용되고 있기 때문입니다.
이 문제는 계속 발생하며 내 PC의 파일에 대한 체크섬을 계산할 수 없습니다. 로컬 관리자로 로그인하고 VS가 관리자로 열립니다. 이것은 내가 시도한 모든 디렉토리 (예 : C : \ TEMP, C : \ Users \ Administrator \ Desktop)에서 지속됩니다. 또한 실제로 파일을 잠그는 프로세스가있을 수 있기 때문에 PC를 재부팅하려고 시도했지만 도움이되지 않았습니다.
은 처음에는 사용하려했습니다
byte[] hashBytes = SHA1ENGINE.ComputeHash(File.Open(toHash, FileMode.Open, FileAccess.Read));
이것은 또한 도움이되지 않았다 :
byte[] hashBytes = SHA1ENGINE.ComputeHash(File.OpenRead(toHash));
그러나 기술 문제와 I가 있음을 변경 한 일부 조사가 발생한 후
.
'File.Open()'은 처리해야 할 것을 반환합니다. – CodeCaster
file.open에 using 문을 사용해야합니다. https://msdn.microsoft.com/en-us/library/b9skfh7s(v=vs.110).aspx – JOSEFtw