{
  "WorkItem": {
    "AffectedComponent": {
      "Name": "",
      "DisplayName": ""
    },
    "ClosedComment": "This is fixed in changeset 79559.  The first binary to contain this fix will be v1.9.1.6",
    "ClosedDate": "2011-06-21T09:04:57.22-07:00",
    "CommentCount": 0,
    "Custom": null,
    "Description": "Hi there, I found the problem lines, I download the source code and would like to update it but failed with too other issues. So can you please update this one rebuild another one.\n \nstring d2 = directoryOnDisk.ToLower();\n \n\"Path.GetDirectoryName(item).Replace(d2, directoryPathInArchive);\"\n \nI assumed you made the \"d2\" to lower, because String.Replace is case-senstive. To fix this one, please  add below custom method ReplaceString  and \n \nreplace\n \n\"Path.GetDirectoryName(item).Replace(d2, directoryPathInArchive);\"\n \nto\n \nReplaceString( Path.GetDirectoryName( item ), d2, directoryPathInArchive, true );\n \nthen folder name should not need to rename to lower anymore.\n \n        /// <summary>        /// Replaces a substring within a string with another substring with optional case sensitivity turned off.        /// </summary>        /// <param name=\"OrigString\">String to do replacements on</param>        /// <param name=\"FindString\">The string to find</param>        /// <param name=\"ReplaceString\">The string to replace found string wiht</param>        /// <param name=\"CaseInsensitive\">If true case insensitive search is performed</param>        /// <returns>updated string or original string if no matches</returns>        public string ReplaceString(string OrigString, string FindString, string ReplaceString, bool CaseInsensitive) {           int at1 = 0;           while( true ) {              if( CaseInsensitive )                 at1 = OrigString.IndexOf( FindString, at1, OrigString.Length - at1, StringComparison.OrdinalIgnoreCase );              else                 at1 = OrigString.IndexOf( FindString, at1 );              if( at1 == -1 )                  return OrigString;              OrigString = OrigString.Substring( 0, at1 ) + ReplaceString + OrigString.Substring( at1 + FindString.Length );              at1 += ReplaceString.Length;           }           return OrigString;        }",
    "LastUpdatedDate": "2013-05-16T05:31:42.917-07:00",
    "PlannedForRelease": "v1.9.1.8 DotNetZip - Latest Stable",
    "ReleaseVisibleToPublic": true,
    "Priority": {
      "Name": "Low",
      "Severity": 50,
      "Id": 1
    },
    "ProjectName": "DotNetZip",
    "ReportedDate": "2010-10-18T14:24:43.43-07:00",
    "Status": {
      "Name": "Closed",
      "Id": 4
    },
    "ReasonClosed": {
      "Name": "Unassigned"
    },
    "Summary": "FileSelector: AddSelectedFiles forced downcase",
    "Type": {
      "Name": "Issue",
      "Id": 3
    },
    "VoteCount": 2,
    "Id": 12260
  },
  "FileAttachments": [],
  "Comments": [
    {
      "Message": "I ran into this problem, and I can't find a workaround.  Any ideas for working around it or an estimate for making fix available?",
      "PostedDate": "2011-01-12T15:17:16.627-08:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2011-06-20T14:34:40.4-07:00",
      "Id": -2147483648
    },
    {
      "Message": "I still don't understand the problem.  What exactly IS the problem?  \r\n\r\nI see that String.ToLower() is being called in the code.  I don't understand that to be a problem .\r\nWhat is the symptom or error condition that is detectable by application code? ",
      "PostedDate": "2011-06-20T15:11:34.643-07:00",
      "Id": -2147483648
    },
    {
      "Message": "ok, I see it now.  It requires the use of the overload of AddSelectedEntries that accepts a dirInArchive parameter. ",
      "PostedDate": "2011-06-20T15:57:45.78-07:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2011-06-21T09:04:57.22-07:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2013-02-21T18:43:24.7-08:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2013-05-16T05:31:42.917-07:00",
      "Id": -2147483648
    }
  ]
}