{
  "WorkItem": {
    "AffectedComponent": {
      "Name": "",
      "DisplayName": ""
    },
    "ClosedComment": "fixed in changeset 43627. first binary 1.9.0.8",
    "ClosedDate": "2009-09-18T18:08:47.133-07:00",
    "CommentCount": 0,
    "Custom": null,
    "Description": "Hello,\n \nI'm getting this error with rev 1.8.4.23\n \n<ExceptionDetail>    <Description>Ionic.Zip.ZipException: Cannot extract ---> System.IO.IOException: The process cannot access the file 'C:\\Users\\Blake Niemyjski\\Documents\\DocumentFolder' because it is being used by another process.   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)   at System.IO.Directory.OpenHandle(String path)   at System.IO.Directory.SetLastWriteTimeUtc(String path, DateTime lastWriteTimeUtc)   at System.IO.Directory.SetLastWriteTime(String path, DateTime lastWriteTime)   at Ionic.Zip.ZipEntry.a(String A_0, Boolean A_1)   at Ionic.Zip.ZipEntry.a(String A_0, Stream A_1, String A_2)   --- End of inner exception stack trace ---   at Ionic.Zip.ZipEntry.a(String A_0, Stream A_1, String A_2)   at Ionic.Zip.ZipEntry.Extract(String baseDirectory)   at Ionic.Zip.ZipFile.a(String A_0, Boolean A_1)   at Ionic.Zip.ZipFile.ExtractAll(String path, ExtractExistingFileAction extractExistingFile)   at Production.Configuration.a(String A_0, String A_1, Boolean A_2)   at Production.Configuration.a(String A_0, String A_1)   at Production.Configuration.b.a()   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)   at System.Threading.ExecutionContext.runTryCode(Object userData)   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)   at System.Threading.ThreadHelper.ThreadStart()</Description>    <ErrorCode>-2146233088</ErrorCode>    <ExceptionTypeName>Ionic.Zip.ZipException</ExceptionTypeName>    <InnerException>      <Description>System.IO.IOException: The process cannot access the file 'C:\\Users\\Blake Niemyjski\\Documents\\DocumentFolder' because it is being used by another process.   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)   at System.IO.Directory.OpenHandle(String path)   at System.IO.Directory.SetLastWriteTimeUtc(String path, DateTime lastWriteTimeUtc)   at System.IO.Directory.SetLastWriteTime(String path, DateTime lastWriteTime)   at Ionic.Zip.ZipEntry.a(String A_0, Boolean A_1)   at Ionic.Zip.ZipEntry.a(String A_0, Stream A_1, String A_2)</Description>      <ErrorCode>-2147024864</ErrorCode>      <ExceptionTypeName>System.IO.IOException</ExceptionTypeName>      <InnerException i:nil=\"true\" />      <Message>The process cannot access the file 'C:\\Users\\Blake Niemyjski\\Documents\\DocumentFolder' because it is being used by another process.</Message>      <MethodName>WinIOError</MethodName>      <ModuleName>mscorlib</ModuleName>      <ModuleVersion>2.0.0.0</ModuleVersion>      <Source>mscorlib</Source>      <StackTrace>   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)   at System.IO.Directory.OpenHandle(String path)   at System.IO.Directory.SetLastWriteTimeUtc(String path, DateTime lastWriteTimeUtc)   at System.IO.Directory.SetLastWriteTime(String path, DateTime lastWriteTime)   at Ionic.Zip.ZipEntry.a(String A_0, Boolean A_1)   at Ionic.Zip.ZipEntry.a(String A_0, Stream A_1, String A_2)</StackTrace>    </InnerException>    <Message>Cannot extract</Message>    <MethodName>a</MethodName>    <ModuleName>Production</ModuleName>    <ModuleVersion>5.0.0.0</ModuleVersion>    <Source>Production</Source>    <StackTrace>   at Ionic.Zip.ZipEntry.a(String A_0, Stream A_1, String A_2)   at Ionic.Zip.ZipEntry.Extract(String baseDirectory)   at Ionic.Zip.ZipFile.a(String A_0, Boolean A_1)   at Ionic.Zip.ZipFile.ExtractAll(String path, ExtractExistingFileAction extractExistingFile)   at Production.Configuration.a(String A_0, String A_1, Boolean A_2)   at Production.Configuration.a(String A_0, String A_1)   at Production.Configuration.b.a()   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)   at System.Threading.ExecutionContext.runTryCode(Object userData)   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)   at System.Threading.ThreadHelper.ThreadStart()</StackTrace>  </ExceptionDetail>\n \nThanks-Blake Niemyjski",
    "LastUpdatedDate": "2013-05-16T05:32:07.863-07:00",
    "PlannedForRelease": "",
    "ReleaseVisibleToPublic": false,
    "Priority": {
      "Name": "Low",
      "Severity": 50,
      "Id": 1
    },
    "ProjectName": "DotNetZip",
    "ReportedDate": "2009-09-17T14:59:36.943-07:00",
    "Status": {
      "Name": "Closed",
      "Id": 4
    },
    "ReasonClosed": {
      "Name": "Unassigned"
    },
    "Summary": "DotNetZip error when setting timestamp on directory during extract",
    "Type": {
      "Name": "Issue",
      "Id": 3
    },
    "VoteCount": 1,
    "Id": 8807
  },
  "FileAttachments": [],
  "Comments": [
    {
      "Message": "Hello,\r\n\r\nI have narrowed this issue down to the following method.\r\n\r\nIn the ZipEntry.Extract.cs There is a method call to _SetTimes(Path.GetDirectoryName(TargetFile), false); around line 833. I added a try catch around this and it resolved the issue. However that is just a work around.\r\n\r\nThanks\r\n-Blake Niemyjski",
      "PostedDate": "2009-09-18T03:56:01.873-07:00",
      "Id": -2147483648
    },
    {
      "Message": "Because setting the time is not considered to be a fatal error,\r\nand because other applications can interfere with the setting\r\nof a time on a directory, swallowing exceptions that occur in \r\nthe SetLastWriteTime() is the right thing to do.",
      "PostedDate": "2009-09-18T13:24:26.183-07:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2009-09-18T18:08:47.133-07:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2013-02-21T18:44:00.39-08:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2013-05-16T05:32:07.863-07:00",
      "Id": -2147483648
    }
  ]
}