コード例 #1
0
ファイル: PInvokeFileMoveX.cs プロジェクト: dave-q/FileMover
 /// <summary>
 /// Handle a non success
 /// </summary>
 /// <param name="successDescriptor"></param>
 /// <param name="fileSize"></param>
 /// <returns></returns>
 private FileMoveProgressArgs HandleFailed(SuccessDescriptor successDescriptor, long fileSize)
 {
     if (successDescriptor.ErrorCode == CANCELLED_ERROR_CODE) //ie it failed because the user cancelled the execution we dont to thrown an exception
     {
         return(new FileMoveProgressArgs(fileSize, 0));
     }
     else
     {
         throw new Win32Exception(successDescriptor.ErrorCode);
     }
 }
コード例 #2
0
ファイル: PInvokeFileMoveX.cs プロジェクト: dave-q/FileMover
        /// <summary>
        /// Handles the the returned boolean of the win32 method, along with the processing of the LastWin32 error if it failed
        /// </summary>
        /// <param name="sourcePath"></param>
        /// <param name="sucessDescriptor"></param>
        private void HandleResult(string sourcePath, SuccessDescriptor sucessDescriptor)
        {
            FileMoveProgressArgs moveEventArgs;

            if (!sucessDescriptor.IsSuccess)
            {
                moveEventArgs = HandleFailed(sucessDescriptor, _totalFileSize);
            }
            else
            {
                //doing this as small files, never get called back from the Win32 method and hence the progress is never updated, so this is make sure 100% is returned once it is complete
                moveEventArgs = new FileMoveProgressArgs(_totalFileSize, _totalFileSize);
            }
            ProgressCallback(moveEventArgs);
        }