【发布时间】:2014-05-23 14:22:25
【问题描述】:
我已经在此站点上搜索了有关为什么该进程无法访问该文件的解决方案,因为它正被另一个进程使用。不幸的是,他们似乎都有针对他们问题的非常具体的答案(如电子邮件附件)。所以,我想我会在这里发帖,也许可以帮助我解决我的问题。这段代码的最终目标是获取文件的 sha256 哈希并将文件保存在磁盘上。
string hashedfile1name="";
string hashedfile2name="";
FileStream fs = null;
HashAlgorithm hash = new SHA256Managed();
if (FileUpload1.HasFile)
try
{
FileUpload1.SaveAs("C:\\Uploads\\" + FileUpload1.FileName);
fs = File.OpenRead("C:\\Uploads\\" + FileUpload1.FileName);
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
hashedfile1name = hash.ComputeHash(bytes).ToString();
File.Delete("C:\\Uploads\\" + FileUpload1.FileName);
Label1.Text = "File name: " + FileUpload1.PostedFile.FileName + " - " + hashedfile1name;
} catch (Exception ex) {
Label1.Text = "ERROR: " + ex.Message.ToString();
}
【问题讨论】:
-
您打开了一个文件以供读取,并且您正试图将其删除。在 open 周围放一个
using并阅读,然后在它之外删除。
标签: c# asp.net process cryptography sha256