2013-08-12 6 views
10

मुझे कोई समस्या है जहां .doc और .pdf फ़ाइलें ठीक आ रही हैं लेकिन एक .docx फ़ाइल दूषित हो रही है।मैं दूषित डॉक्क्स फ़ाइल को कैसे डिबग कर सकता हूं?

यह हल करने के लिए कि मैं डीबग करने का प्रयास कर रहा हूं कि .docx दूषित क्यों है।

मैंने सीखा कि docx प्रारूप या तो .pdf या .doc से अतिरिक्त वर्णों के संबंध में बहुत कठोर है। इसलिए मैंने अवैध एक्सएमएल की तलाश में docx फ़ाइल के भीतर विभिन्न एक्सएमएल फाइलों की खोज की है। लेकिन मुझे कोई नहीं मिला। यह सब ठीक से मान्य है।

xml files I've been checking out

किसी को भी अब मुझे जांच करने के लिए दिशा निर्देश सुझाते सकते हैं?

अद्यतन: इस प्रकार

फ़ोल्डर के अंदर फाइलों की पूरी सूची है के रूप में:

/_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 

अद्यतन 2:

मैं भी है कि भ्रष्टाचार के लिए कारण का उल्लेख किया जाना चाहिए था मेरी ओर से लगभग निश्चित रूप से एक खराब बाइनरी फ़ाइल पोस्ट है।

why are docx files corrupted by binary post, but .doc and .pdf are fine?

अद्यतन 3:

मैं डेमो विभिन्न docx मरम्मत उपकरण की कोशिश की है। वे सभी ठीक फाइल को ठीक करने लगते हैं लेकिन त्रुटि के कारण के रूप में कोई सुराग नहीं देते हैं।

मेरा अगला चरण दूषित फ़ाइल के साथ दूषित फ़ाइल की सामग्री की जांच करना है।

यदि कोई डॉक्स मरम्मत उपकरण के बारे में जानता है जो एक सभ्य त्रुटि संदेश देता है तो मैं इसके बारे में सुनवाई की सराहना करता हूं। असल में मैं इसे एक अलग प्रश्न के रूप में पोस्ट कर सकता हूं।

अद्यतन 4 (2017)

मैं इस समस्या को कभी नहीं हल किया। मैंने नीचे दिए गए उत्तरों में सुझाए गए सभी टूल्स का प्रयास किया है, लेकिन उनमें से कोई भी मेरे लिए काम नहीं करता है।

तब से मैंने थोड़ी सी प्रगति की है और 0000 का ब्लॉक पाया है जब सब्लिमे टेक्स्ट में .docx खोलना है। नए प्रश्न में अधिक जानकारी यहां: What could be causing this corruption in .docx files during httpwebrequest?

+0

मैं इसे ले कि अपने उपकरणों एक सभ्य त्रुटि संदेश के साथ नहीं आते हैं (wordDoc एक WordprocessingDocument है), वे करते हैं? कंसोल में कहीं और भी निजी नहीं है? – zoul

+0

क्या आप सुझाव देंगे कि मैं इसे देखने के लिए उपयोग करता हूं? मैं इस पर एक नया हूं, केवल एक और मुद्दा हल करने के लिए त्रुटि को डीबग करने का प्रयास कर रहा हूं। जब मैं वर्ड में फ़ाइल खोलने की कोशिश करता हूं तो यह भ्रष्ट के रूप में आता है (हालांकि यह ठीक मरम्मत करता है)। –

+0

क्षमा करें, कोई विचार नहीं। मैं बस उम्मीद कर रहा था कि आप उस उपकरण से त्रुटि के बारे में बेहतर विचार प्राप्त कर सकते हैं जो फ़ाइल को दूषित के रूप में रिपोर्ट कर रहा है। – zoul

उत्तर

3

आमतौर पर, जब किसी विशेष XML फ़ाइल में कोई त्रुटि होती है, तो Word आपको बताता है कि किस फ़ाइल में त्रुटि होती है। तो मेरा मानना ​​है कि समस्या या तो फाइल की ज़िपिंग, या तो फ़ोल्डर संरचना से आता है।

यहाँ एक वर्ड फ़ाइल की फ़ोल्डर संरचना है:

.docx प्रारूप ज़िपित फ़ाइल को निम्न फ़ोल्डर होता है:

+--docProps 
| + app.xml 
| \ core.xml 
+ res.log 
+--word //this folder contains most of the files that control the content of the document 
| + document.xml //Is the actual content of the document 
| + endnotes.xml 
| + fontTable.xml 
| + footer1.xml //Containst the elements in the footer of the document 
| + footnotes.xml 
| +--media //This folder contains all images embedded in the word 
| | \ image1.jpeg 
| + settings.xml 
| + styles.xml 
| + stylesWithEffects.xml 
| +--theme 
| | \ theme1.xml 
| + webSettings.xml 
| \--_rels 
|  \ document.xml.rels //this document tells word where the images are situated 
+ [Content_Types].xml 
\--_rels 
    \ .rels 

ऐसा लगता है कि आप केवल क्या शब्द फ़ोल्डर के अंदर है , है न ? यदि यह काम नहीं करता है, तो क्या आप या तो दूषित डॉक्क्स भेज सकते हैं या अपने ज़िप के अंदर अपने फ़ोल्डर्स की संरचना पोस्ट कर सकते हैं?

+0

क्षमा करें, मुझे और अधिक स्पष्ट होना चाहिए था। मैंने उस शॉट को प्रदर्शित करने के लिए पोस्ट किया क्योंकि इसमें अधिकांश एक्सएमएल फाइलें हैं जिन्हें मैंने चेक किया था। मुझे लगता है कि संरचना जैसा आप कहते थे। मैं दोबारा जांच करने जा रहा हूँ। मैं फ़ोल्डर में हर एक्सएमएल फाइल के माध्यम से चला गया, सोच रहा था कि मुझे एक अवैध मिल जाएगा ... लेकिन मैंने नहीं किया। मैं पोस्ट अपडेट करूंगा। –

3

मैंने टूटा हाइपरलिंक संदर्भ में समस्या खोजने के लिए "ओपन एक्सएमएल एसडीके 2.5 उत्पादकता उपकरण" (http://www.microsoft.com/en-us/download/details.aspx?id=30425) का उपयोग किया।

आपको पहले एसडीके को डाउनलोड/इंस्टॉल करना होगा, फिर टूल। टूल समस्याओं के लिए दस्तावेज़ खोल देगा और विश्लेषण करेगा।

+0

हाय जेरेमी, सुझाव के लिए बहुत बहुत धन्यवाद। यह एक अच्छा था, लेकिन जब मैंने कोशिश की तो मैं इसे अपनी फाइल खोलने के लिए नहीं मिला। (Http://stackoverflow.com/a/18215739/1778169)। सुझाव के लिए –

-1

वेब docx सत्यापनकर्ता मेरे लिए काम किया: http://ucd.eeonline.org/validator/index.php

+0

ता, मैंने इसे पहले नहीं देखा था। लेकिन मेरे मामले में यह मेरी दूषित फाइल –

+0

के साथ 500 फेंक दिया यह एक दस्तावेज़ लेआउट वैधकर्ता है। यह एक्सएमएल संरचना को मान्य नहीं करता है। जैसा कि यह पृष्ठ पर उल्लेख करता है: ** सत्यापन उपकरण आपके दस्तावेज़ के फ़ॉन्ट प्रकार, फ़ॉन्ट आकार, ग्राफिक्स और तालिकाओं को देखेगा और इसकी पहुंच पर सिफारिशें ** –

1

कई साल देर से, लेकिन मैं इस जो वास्तव में मेरे लिए काम किया पाया। (https://msdn.microsoft.com/en-us/library/office/bb497334.aspx से)

using DocumentFormat.OpenXml.Validation;

 try 
     { 
      var validator = new OpenXmlValidator(); 
      var count = 0; 
      foreach (var error in validator.Validate(wordDoc)) 
      { 
       count++; 
       Console.WriteLine("Error " + count); 
       Console.WriteLine("Description: " + error.Description); 
       Console.WriteLine("ErrorType: " + error.ErrorType); 
       Console.WriteLine("Node: " + error.Node); 
       Console.WriteLine("Path: " + error.Path.XPath); 
       Console.WriteLine("Part: " + error.Part.Uri); 
       Console.WriteLine("-------------------------------------------"); 
      } 

      Console.WriteLine("count={0}", count); 
     } 

     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
+0

यह बहुत ही आशाजनक लग रहा था ... लेकिन इस चौड़ाई को आजमा रहा है दस्तावेज़ मैंने मुझे दिया था: 'System.IO.FileFormatException: फ़ाइल में दूषित डेटा है।' aaaagggghhhh! –

+0

सुनिश्चित करें कि यह '.doc' नहीं है, उनके पास XML नहीं है। केवल '.docx' करता है। अगर आप फ़ाइल नहीं खोल सकते हैं, तो एक्सटेंशन को स्विच करने का प्रयास करें। हो सकता है कि आप 'doc' को 'docx' या कुछ –

+0

में परिवर्तित न करें, यह एक डॉक्क्स था, लेकिन भ्रष्टाचार बहुत अस्पष्ट हो गया, शायद यही कारण है कि कुछ भी नहीं खुलता! फाइल के अंत से कुछ नल बाइट छीन रहे थे। http://stackoverflow.com/questions/42102359/what-could-be-causing-this-corruption-in-docx-files-during-httpwebrequest –

संबंधित मुद्दे