我有一个情况下创建像签入&签出文件。然后,如何管理和检查用户是否签入文档,是新签入还是现有签入文档。关于什么文件属性我们可以区分这一点。我不想使用lastModifiedTime,Size或文件的名称。请告诉我。谢谢..如何区分一个文件与内容相同的文件修改后,使文件版本的Java
回答
当我有这样的事情要做,我试着用MD5哈希(在Perl中)。我认为这可能有所帮助: How can I generate an MD5 hash?
的方法感谢MD5散列技术,但是如果已经做了一些更改,那么如何识别该用户修改了同一文件? – Shubhankar
你想知道“哪个用户”修改了吗?或者“具有不同MD5的文件”是完全相同的还是不同的文件? –
是这两个用户和“具有不同MD5的文件”是完全相同的或不同的文件。我的目标是:我必须下载一个文件,然后对其进行修改并上传相同的文件,但在上传时如何检查我是否上传了带有一些修改内容的相同下载文件 – Shubhankar
md5文件编码将帮助你。 This is一个如何获得MD5值的工作示例。
public static void main(String[] args)throws Exception
{
MessageDigest md = MessageDigest.getInstance("MD5");
FileInputStream fis = new FileInputStream("c:\\loging.log");
byte[] dataBytes = new byte[1024];
int nread = 0;
while ((nread = fis.read(dataBytes)) != -1) {
md.update(dataBytes, 0, nread);
};
byte[] mdbytes = md.digest();
//convert the byte to hex format method 1
StringBuffer sb = new StringBuffer();
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println("Digest(in hex format):: " + sb.toString());
//convert the byte to hex format method 2
StringBuffer hexString = new StringBuffer();
for (int i=0;i<mdbytes.length;i++) {
String hex=Integer.toHexString(0xff & mdbytes[i]);
if(hex.length()==1) hexString.append('0');
hexString.append(hex);
}
System.out.println("Digest(in hex format):: " + hexString.toString());
}
输出:
Digest(in hex format):: e72c504dc16c8fcd2fe8c74bb492affa
Digest(in hex format):: e72c504dc16c8fcd2fe8c74bb492affa
你必须做的是比较新的一个旧的MD5值,如果它对应,没有修改过的文件进行
但如果对文件进行了一些更改,那么如何识别该用户修改了相同的文件? becoz我在同一个文件上运行MD5我会得到不同的HEX代码 – Shubhankar
我不明白...如果我有MD5值文件a1a1a1a1和用户更改文件,然后MD5值也会改变,例如a2a2a2a2。由于MD5旧值(a1a1a1a1)与MD5新值(a2a2a2a2)不同,我知道有人做了一些更改 – IlGala
完全正确。但是,如果我将其他文件传递给MD5哈希而不是我作出更改的文件,那么如何确定我传递的文件不是我在其中进行更改的文件? – Shubhankar
- 1. 使用Java修改文件的内容
- 2. 如何将两个文本(.txt)文件合并为一个文件并将相同的内容区分开来?
- 3. 修改文件的内容
- 4. 如何编写与文件名相同的文本文件内容?
- 5. 内容相同的文件
- 6. 修改文本文件的内容并在java中写入新文件
- 7. 修改Linux文件内容
- 8. 脚本对指定的文件修改文件内容
- 9. 显示文本文件更改为另一个文本文件不时在相同的内容中
- 10. 修改Java中的文本文件
- 11. 如何修改文件的某些内容并使用java保存在同一文件中
- 12. 如何更改文本文件的内容在Java中
- 13. 如何在文本文件中编写修改后的文本文件
- 14. 如何修改文本在一个文本文件
- 15. 如何区分一个文件到Git中的任意版本?
- 16. Java文件I/O - 文本文件 - 如何检查内容?
- 17. 将修改的文本框的内容保存到文件
- 18. Sharepoint:修改文件/项目的版本
- 19. 如何区分Eclipse中相同文件的两个区域
- 20. 修改js文件的内容
- 21. 修改静态文件的内容
- 22. 修改zipfile条目的文件内容
- 23. 如何修改一个文件的PHP
- 24. 如何从文件列表中获取最后一个修改后的文件
- 25. 如何分割文本行,并使用一个部分作为文件名,另一部分为文件内容
- 26. 如何比较两个文本文件的内容并返回“相同内容”或“不同内容”?
- 27. 修改文本文件中特定行的内容
- 28. 在linux中修改文件之前检查文件的内容
- 29. 即使在更改文件后,如何使网页显示文件的内容?
- 30. 如何获取文件内容的相同部分?
为什么不散列文件内容,这就是Git等版本控制系统采用 – codebox