{
  "WorkItem": {
    "AffectedComponent": {
      "Name": "",
      "DisplayName": ""
    },
    "ClosedComment": "",
    "ClosedDate": null,
    "CommentCount": 0,
    "Custom": null,
    "Description": "When a zip file contains files or is named with an underscore in its file name IE \"this_isAnExample.zip\" Ionic reports the following exception \"The given path's format is not supported\"\n\nThe file can be opened in 7Zip and in a MS window",
    "LastUpdatedDate": "2013-02-21T18:42:42.7-08:00",
    "PlannedForRelease": "",
    "ReleaseVisibleToPublic": false,
    "Priority": {
      "Name": "Low",
      "Severity": 50,
      "Id": 1
    },
    "ProjectName": "DotNetZip",
    "ReportedDate": "2012-12-02T22:17:19.393-08:00",
    "Status": {
      "Name": "Proposed",
      "Id": 1
    },
    "ReasonClosed": {
      "Name": "Unassigned"
    },
    "Summary": "Underscore raises Exception when extracting",
    "Type": {
      "Name": "Issue",
      "Id": 3
    },
    "VoteCount": 1,
    "Id": 15823
  },
  "FileAttachments": [],
  "Comments": [
    {
      "Message": "I have downloaded the source and discovered the issue is not the underscore but the zip file contains a folder called \"21:10:11_LJBLACK\" apparently this was created on a Mac OS.\r\n\r\nWhen extracting this with 7Zip or windows it automatically converts the \":\" to \"_\". I have modified the source file ZipEntry.Extracts.cs placing the line f = f.Replace(\":\", \"_\"); before the outFileName is assigned. This has corrected my issue.\r\n\r\n",
      "PostedDate": "2012-12-04T15:41:26.81-08:00",
      "Id": -2147483648
    },
    {
      "Message": "As an alternative, check all chars in the f variable for invalid characters, ignoring the / as they are valid\r\n\r\n// replace invalid folder/path entries but AFTER the steps above\nchar[] invalidChars = Path.GetInvalidFileNameChars();\nforeach (char element in Path.GetInvalidFileNameChars())\n{\n  //ignore the slashes as these will be the folder path\n  if (element != '/')\n  {\n    f = f.Replace(element, '_');\n  }\n}           ",
      "PostedDate": "2012-12-05T15:50:25.923-08:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2013-02-21T18:42:42.7-08:00",
      "Id": -2147483648
    }
  ]
}