昨天晚上我在写一个提交消息时遇到了电源故障.当我启动机器备份时,我无法完成提交.我跑了git reset
,添加了更改的文件,然后再次尝试,并得到了这个:
% git commit
error: inflate: data stream error (incorrect header check)
error: unable to unpack a94406345ac44982b00cf57b4b9660a35436637f header
fatal: a94406345ac44982b00cf57b4b9660a35436637f is not a valid object
Run Code Online (Sandbox Code Playgroud)
git fsck
揭示以下内容:
% git fsck --full
Checking object directories: 100% (256/256), done.
error: inflate: data stream error (incorrect header check)
error: unable to unpack 4346883490a0990e68db0187241abc1642765a73 header
error: inflate: data stream error (incorrect header check)
fatal: loose object 4346883490a0990e68db0187241abc1642765a73 (stored in .git/objects/43/46883490a0990e68db0187241abc1642765a73) is corrupt
Run Code Online (Sandbox Code Playgroud)
我注意到消息抱怨不同的对象.
我搜索了SO和网络并尝试了一些不同的东西,但无济于事.
git stash
给出了相同的信息 …我只是设法破坏了我的Eclipse .metadata目录的内容.启动eclipse -clean没有成功.删除.metadata,然后导入所有项目,插件和设置听起来不太有趣.我最终移动.metadata/.plugins/org.eclipse.core.resources /其他地方并重新导入我的项目.
是否有任何工具或最佳实践来恢复工作空间?
我在.tar.gz存档中有大量文件.使用命令检查文件类型
file SMS.tar.gz
Run Code Online (Sandbox Code Playgroud)
给出了回应
gzip compressed data - deflate method , max compression
Run Code Online (Sandbox Code Playgroud)
当我尝试使用gunzip提取存档时,延迟后我收到消息
gunzip: SMS.tar.gz: unexpected end of file
Run Code Online (Sandbox Code Playgroud)
有没有办法恢复部分档案?
我有一个用Flip相机拍摄的MP4视频.当我停止录音机时相机冻结了,现在视频显示已损坏.我仍然可以从相机下载它,但它不会播放.现在,视频的大小仍然超过2千兆字节,所以我认为数据仍然存在.
所以,我搜索网络寻找解决方案,我找到了声称可以解决这个问题的付费服务和软件.一个诊断服务("Treasured")向我展示了视频中的剧照,证实了我相信那里可能有一些可以挽救的东西.不幸的是,要求修复它的价格不在预算范围内.它需要更多的朴素解决方案.
有谁知道如何修复损坏的MP4?或者是没有太多钱的服务或软件?
这不是查询.它总结了我们解决SQL Compact数据库文件中的损坏问题的解决方案,几乎取得了一定的成功.SQLCE腐败是一个非常普遍的问题.我们从StackOverflow的早期帖子中获得了巨大的帮助,因此这篇文章.
我们的产品是一个3层架构,服务器作为Windows服务运行,通过.Net Remoting连接到Rich Clients.我们的产品从2006年开始使用SQLCE.我们已经从v3.1升级到v3.5,现在升级到v4.0.我们为一些非常具体的要求提供了自定义OR映射工具.我们遇到了v3.1的有限问题,我们在v3.5和v4.0上遇到了更多问题.
最初使用v3.5,我们实现了SqlCeEngine.Repair
.但它只会丢弃损坏的数据,并尝试重新创建一个稳定的数据库.我们发现受影响的桌子的外键丢失了.我们必须立即废除这一点.我们开始向用户通知数据库损坏,并恢复上次备份.这只能暂时缓解; 腐败问题仍然存在.
今年,我们采用了v4.0.但是,我们的应用程序还引入了几个新功能,极大地增加了数据库调用的数量.v4.0开始很好,但在软件使用量增加时开始出现问题.应用程序运行时发生的损坏不会导致Windows崩溃,异常关闭或磁盘问题.数据库刚刚损坏.
下一篇文章介绍了我们针对此问题设计的解决方案:
我有一个Windows应用程序.NET管理许多PDF文件.有些文件已损坏.
2个问题:我会用最糟糕的英语解释...对不起
1.)
如何检测pdf文件是否正确?
我想读PDF的标题和检测是正确的.
var okPDF = PDFCorrect(@"C:\ temp\pdfile1.pdf");
2.)
如何知道文件的byte [](bytearray)是否是PDF文件.
例如,对于ZIP文件,您可以检查前四个字节并查看它们是否与本地标头签名匹配,即以十六进制表示
50 4b 03 04
if(buffer [0] == 0x50 && buffer [1] == 0x4b && buffer [2] == 0x03 && buffer [3] == 0x04)
如果要将其加载到long中,则为(0x04034b50).作者:David Pierson
我希望PDF文件也一样.
byte [] dataPDF = ...
var okPDF = PDFCorrect(dataPDF);
.NET中的任何示例源代码?
OpenCV说的就像
Corrupt JPEG data: premature end of data segment
Run Code Online (Sandbox Code Playgroud)
要么
Corrupt JPEG data: bad Huffman code
Run Code Online (Sandbox Code Playgroud)
要么
Corrupt JPEG data: 22 extraneous bytes before marker 0xd9
Run Code Online (Sandbox Code Playgroud)
使用imread()加载损坏的jpeg图像时.我可以以某种方式抓住它吗?为什么我会收到这些信息?我是否必须自己检查二进制文件?
我正在尝试用UIImagePickerController压缩用户摄像头拍摄的视频(不是现有的视频,而是一个即时的视频)上传到我的服务器并花费少量时间这样做,所以较小的尺寸是理想的而不是30-新品质相机45毫升.
这是在iOS 8中使用swift进行压缩的代码,它压缩得非常好,我从35 mb轻松到2.1 mb.
func convertVideo(inputUrl: NSURL, outputURL: NSURL)
{
//setup video writer
var videoAsset = AVURLAsset(URL: inputUrl, options: nil) as AVAsset
var videoTrack = videoAsset.tracksWithMediaType(AVMediaTypeVideo)[0] as AVAssetTrack
var videoSize = videoTrack.naturalSize
var videoWriterCompressionSettings = Dictionary(dictionaryLiteral:(AVVideoAverageBitRateKey,NSNumber(integer:960000)))
var videoWriterSettings = Dictionary(dictionaryLiteral:(AVVideoCodecKey,AVVideoCodecH264),
(AVVideoCompressionPropertiesKey,videoWriterCompressionSettings),
(AVVideoWidthKey,videoSize.width),
(AVVideoHeightKey,videoSize.height))
var videoWriterInput = AVAssetWriterInput(mediaType: AVMediaTypeVideo, outputSettings: videoWriterSettings)
videoWriterInput.expectsMediaDataInRealTime = true
videoWriterInput.transform = videoTrack.preferredTransform
var videoWriter = AVAssetWriter(URL: outputURL, fileType: AVFileTypeQuickTimeMovie, error: nil)
videoWriter.addInput(videoWriterInput)
var videoReaderSettings: [String:AnyObject] = [kCVPixelBufferPixelFormatTypeKey:kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange]
var videoReaderOutput = AVAssetReaderTrackOutput(track: videoTrack, outputSettings: videoReaderSettings)
var …
Run Code Online (Sandbox Code Playgroud) 我有一个问题,其中.doc和.pdf文件出来正常但.docx文件出现损坏.
为了解决这个问题,我试图调试为什么.docx已损坏.
我了解到docx格式在额外字符方面比.pdf或.doc更严格.因此,我搜索了docx文件中的各种xml文件,查找无效的XML.但我找不到任何东西.这一切都很好.
有人可以建议我现在去调查吗?
更新:
文件夹中文件的完整列表如下:
/_rels
.rels
/customXml
/_rels
.rels
item1.xml
itemProps1.xml
/docProps
app.xml
core.xml
/word
/_rels
document.xml.rels
/media
image1.jpeg
/theme
theme1.xml
document.xml
fontTable.xml
numbering.xml
settings.xml
styles.xml
stylesWithEffects.xml
webSettings.xml
[Content_Types].xml
Run Code Online (Sandbox Code Playgroud)
更新2:
我还应该提到腐败的原因几乎肯定是代表我的一个糟糕的二进制文件POST.
为什么docx文件被二进制文件损坏,但.doc和.pdf都没问题?
更新3:
我已经尝试了各种docx修复工具的演示.他们似乎都修复了文件,但没有提供错误原因的线索.
我的下一步是使用修复版本检查损坏文件的内容.
如果有人知道docx修复工具提供了一个体面的错误消息,我会很感激听到它.事实上,我可能会将其作为一个单独的问题发布.
更新4(2017)
我从未解决过这个问题.我已经尝试了下面答案中建议的所有工具,但它们都不适用于我.
自从0000
Sublime Text打开.docx后,我已经进一步发展并找到了一个缺失块.这里新问题的更多细节:httpwebrequest期间.docx文件中可能导致这种损坏的原因是什么?
在我正在开发的应用程序中,我或多或少地碰到了一堵砖墙.在应用程序中,您可以输入一个视图,该视图在标准表视图中列出所有本地保存的音频文件.从这里你可以点击它们来播放它们,或者点击下面的录制按钮进行新的录制,之后会自动保存到应用程序沙箱中.
现在所有这些在大多数情况下实际上都非常好.我可以坐下来录制并播放它们.我可以坐下来测试一下这个45左右,没有任何问题.然后突然在随机的时候我会遇到一个非常奇怪的问题.问题是,无论录制多长时间,录音机都会突然开始保存除了无法播放的损坏文件以及大小正好为4096字节的文件.
我以完全标准的方式使用AVAudioRecorder,设置如下:
// Specific settings for the audio recording
NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:AVAudioQualityMin],
AVEncoderAudioQualityKey,
[NSNumber numberWithInt:8],
AVEncoderBitRateKey,
[NSNumber numberWithInt: 2],
AVNumberOfChannelsKey,
[NSNumber numberWithFloat:22000.0],
AVSampleRateKey,
nil];
NSError *error = nil;
audioRecorder = [[AVAudioRecorder alloc]
initWithURL:contentURL
settings:recordSettings
error:&error];
audioRecorder.delegate = self;
Run Code Online (Sandbox Code Playgroud)
我像这样开始录音:
if (!isRecording) {
isRecording = YES;
[audioRecorder record];
// Start the timer
recordTiming = [NSDate date];
timeCheck = [NSTimer
scheduledTimerWithTimeInterval:1.0f
target:self
selector:@selector(timeCheck)
userInfo:nil
repeats:YES];
}
Run Code Online (Sandbox Code Playgroud)
然后用这个来阻止它:
if (isRecording) {
[audioRecorder stop];
// Stop the timer
[timeCheck …
Run Code Online (Sandbox Code Playgroud)