• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# SHFILEOPSTRUCT类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中SHFILEOPSTRUCT的典型用法代码示例。如果您正苦于以下问题:C# SHFILEOPSTRUCT类的具体用法?C# SHFILEOPSTRUCT怎么用?C# SHFILEOPSTRUCT使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



SHFILEOPSTRUCT类属于命名空间,在下文中一共展示了SHFILEOPSTRUCT类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: SendToTrash

 public static void SendToTrash(string path)
 {
     SHFILEOPSTRUCT fileop = new SHFILEOPSTRUCT();
     fileop.wFunc = FO_DELETE;
     fileop.pFrom = path + '\0' + '\0';
     fileop.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
     SHFileOperation(ref fileop);
 }
开发者ID:byrod,项目名称:YAME,代码行数:8,代码来源:SHFILEOP.cs


示例2: CopyFiles

 public static bool CopyFiles(String from, String to)
 {
     SHFILEOPSTRUCT op = new SHFILEOPSTRUCT();
     op.wFunc = FO_Func.FO_COPY;
     op.fFlags = (ushort)FO_Func.FOF_ALLOWUNDO;
     op.pFrom = from;
     op.pTo = to;
     return (SHFileOperation(ref op) == 0 && !op.fAnyOperationsAborted);
 }
开发者ID:andrey-kozyrev,项目名称:LinguaSpace,代码行数:9,代码来源:ShellUtils.cs


示例3: deleteFileOrFolder2Bin

 public static int deleteFileOrFolder2Bin(string ff)
 {
     if (ff.EndsWith("\\")) ff = ff.Remove(ff.Length - 1, 1);
     SHFILEOPSTRUCT shf = new SHFILEOPSTRUCT();
     shf.wFunc = FO_DELETE;
     shf.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
     shf.pFrom = ff + '\0' + '\0';
     return SHFileOperation(ref shf);
 }
开发者ID:robotob,项目名称:Components,代码行数:9,代码来源:WindowsAPI.cs


示例4: DateiInPapierkorb

 /// <summary>
 /// Verschiebt eine Datei in den Papierkorb
 /// </summary>
 /// <param name="filePath"></param>
 private static void DateiInPapierkorb(string filePath)
 {
     var fileop = new SHFILEOPSTRUCT
     {
         wFunc = FO_DELETE,
         pFrom = (filePath + '\0' + '\0'),
         fFlags = (FOF_ALLOWUNDO | FOF_NOCONFIRMATION)
     };
     SHFileOperation(ref fileop);
 }
开发者ID:hbre,项目名称:henning-me-tools,代码行数:14,代码来源:Program.cs


示例5: DeleteFileOperation

        private static void DeleteFileOperation(string filePath)
        {
            var fileop = new SHFILEOPSTRUCT
                             {
                                 wFunc = FoDelete,
                                 pFrom = filePath + '\0' + '\0',
                                 fFlags = FofAllowundo | FofNoconfirmation
                             };

            SHFileOperation(ref fileop);
        }
开发者ID:vmail,项目名称:main,代码行数:11,代码来源:FileOperations.cs


示例6: DeleteFileToRecycleBin

        public static void DeleteFileToRecycleBin(string filename)
        {
            SHFILEOPSTRUCT shf = new SHFILEOPSTRUCT();
            shf.wFunc = FO_DELETE;
            shf.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
            shf.pFrom = filename + "\0";
            int result = SHFileOperation(ref shf);

            if (result != 0)
                Utilities.DebugLine("error: {0} while moving file {1} to recycle bin", result, filename);
        }
开发者ID:peeboo,项目名称:open-media-library,代码行数:11,代码来源:FileHelper.cs


示例7: CallSH

 public static bool CallSH(FileOperationType type, string[] from, string to, FileOperationFlags flags)
 {
     var fs = new SHFILEOPSTRUCT();
     fs.wFunc = type;
     if (from.Length > 0)
         fs.pFrom = string.Join("\0", from) + "\0\0";
     if (to.Length > 0)
         fs.pTo = to + "\0\0";
     fs.fFlags = flags;
     return SHFileOperation(ref fs) == 0;
 }
开发者ID:nocmnt,项目名称:UVA-Arena,代码行数:11,代码来源:FileOperations.cs


示例8: DeleteToRecycleBin

        /// <summary>
        /// Delete a file or directory by moving it to the trash bin
        /// </summary>
        /// <param name="filePath">Full path of the file.</param>
        /// <returns><c>true</c> if successfully deleted.</returns>
        public static bool DeleteToRecycleBin(string filePath)
        {
            if (PlatformUtilities.Platform.IsWindows)
            {
                if (!File.Exists(filePath) && !Directory.Exists(filePath))
                    return false;

                // alternative using visual basic dll:
                // FileSystem.DeleteDirectory(item.FolderPath,UIOption.OnlyErrorDialogs), RecycleOption.SendToRecycleBin);

                //moves it to the recyle bin
                var shf = new SHFILEOPSTRUCT();
                shf.wFunc = FO_DELETE;
                shf.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
                string pathWith2Nulls = filePath + "\0\0";
                shf.pFrom = pathWith2Nulls;

                SHFileOperation(ref shf);
                return !shf.fAnyOperationsAborted;
            }

            // On Linux we'll have to move the file to $XDG_DATA_HOME/Trash/files and create
            // a filename.trashinfo file in $XDG_DATA_HOME/Trash/info that contains the original
            // filepath and the deletion date. See http://stackoverflow.com/a/20255190
            // and http://freedesktop.org/wiki/Specifications/trash-spec/.
            // Environment.SpecialFolder.LocalApplicationData corresponds to $XDG_DATA_HOME.

            // move file or directory
            if (Directory.Exists(filePath) || File.Exists(filePath))
            {
                var trashPath = Path.Combine(Environment.GetFolderPath(
                    Environment.SpecialFolder.LocalApplicationData), "Trash");
                var trashedFileName = Path.GetRandomFileName();
                if (!Directory.Exists(trashPath))
                {
                    // in case the trash bin doesn't exist we create it. This can happen e.g.
                    // on the build machine
                    Directory.CreateDirectory(Path.Combine(trashPath, "files"));
                    Directory.CreateDirectory(Path.Combine(trashPath, "info"));
                }

                var recyclePath = Path.Combine(Path.Combine(trashPath, "files"), trashedFileName);

                WriteTrashInfoFile(trashPath, filePath, trashedFileName);
                // Directory.Move works for directories and files
                DirectoryUtilities.MoveDirectorySafely(filePath, recyclePath);
                return true;
            }
            return false;
        }
开发者ID:jasonleenaylor,项目名称:libpalaso,代码行数:55,代码来源:PathUtilities.cs


示例9: DeleteToRecycleBin

		public static void DeleteToRecycleBin(string fileName)
		{
			if (!File.Exists(fileName) && !Directory.Exists(fileName))
				throw new FileNotFoundException("File not found.", fileName);
			SHFILEOPSTRUCT info = new SHFILEOPSTRUCT();
			info.hwnd = Gui.WorkbenchSingleton.MainWin32Window.Handle;
			info.wFunc = FO_FUNC.FO_DELETE;
			info.fFlags = FILEOP_FLAGS.FOF_ALLOWUNDO | FILEOP_FLAGS.FOF_NOCONFIRMATION;
			info.lpszProgressTitle = "Delete " + Path.GetFileName(fileName);
			info.pFrom = fileName + "\0"; // pFrom is double-null-terminated
			int result = SHFileOperation(ref info);
			if (result != 0)
				throw new IOException("Could not delete file " + fileName + ". Error " + result, result);
		}
开发者ID:lisiynos,项目名称:pascalabcnet,代码行数:14,代码来源:NativeMethods.cs


示例10: DeleteFile

 private static bool DeleteFile(string[] path, FileOperationFlags flags) {
     if (path == null || path.All(x => x == null)) return false;
     try {
         var fs = new SHFILEOPSTRUCT {
             wFunc = FileOperationType.FO_DELETE,
             pFrom = string.Join("\0", path.Where(x => x != null)) + "\0\0",
             fFlags = flags
         };
         SHFileOperation(ref fs);
         return true;
     } catch (Exception) {
         return false;
     }
 }
开发者ID:gro-ove,项目名称:actools,代码行数:14,代码来源:FileUtils.cs


示例11: RecursivelyDeleteDirectory

 /// <summary>
 /// Recursively deletes a directory using the shell API which can 
 /// handle long file names
 /// </summary>
 /// <param name="dir"></param>
 public static void RecursivelyDeleteDirectory(string dir, bool silent = false) {
     SHFILEOPSTRUCT fileOp = new SHFILEOPSTRUCT();
     fileOp.pFrom = dir + '\0';  // pFrom must be double null terminated
     fileOp.wFunc = FO_Func.FO_DELETE;
     fileOp.fFlags = FILEOP_FLAGS_ENUM.FOF_NOCONFIRMATION |
         FILEOP_FLAGS_ENUM.FOF_NOERRORUI;
     if (silent) {
         fileOp.fFlags |= FILEOP_FLAGS_ENUM.FOF_SILENT;
     }
     int res = SHFileOperation(ref fileOp);
     if (res != 0) {
         throw new IOException("Failed to delete dir " + res);
     }
 }
开发者ID:jsschultz,项目名称:PTVS,代码行数:19,代码来源:ShellUtils.cs


示例12: DeleteFileOrFolder

 public static void DeleteFileOrFolder(string path)
 {
     try
     {
         SHFILEOPSTRUCT fileop = new SHFILEOPSTRUCT();
         fileop.wFunc = FO_DELETE;
         fileop.pFrom = path + '\0' + '\0';
         fileop.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
         SHFileOperation(ref fileop);
     }
     catch(Exception ex)
     {
         throw new ID3SQLException("Recycle option not available on this system", ex);
     }
 }
开发者ID:murrple-1,项目名称:ID3SQL,代码行数:15,代码来源:SHFileOperationWrapper.cs


示例13: DeleteToRecycleBin

        public static void DeleteToRecycleBin(string fileName, bool showConfirmation)
        {
            SHFILEOPSTRUCT shf = new SHFILEOPSTRUCT();
            shf.hwnd = IntPtr.Zero;
            shf.wFunc = FO_Func.FO_DELETE;
            if (showConfirmation)
            {
                shf.fFlags = FOF_ALLOWUNDO;
            }
            else
            {
                shf.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
            }

            shf.pFrom = fileName + '\0';
            SHFileOperation(ref shf);
        }
开发者ID:HaKDMoDz,项目名称:eStd,代码行数:17,代码来源:NativeMethods.cs


示例14: DeleteFile

 private static bool DeleteFile(string path, FileOperationFlags flags)
 {
     try
     {
         SHFILEOPSTRUCT fileOp = new SHFILEOPSTRUCT
         {
             wFunc = FileOperationType.FO_DELETE,
             pFrom = path + '\0' + '\0',
             fFlags = flags
         };
         SHFileOperation(ref fileOp);
         return true;
     }
     catch (Exception)
     {
         return false;
     }
 }
开发者ID:EmuDevs,项目名称:EDTerraria,代码行数:18,代码来源:FileOperationAPIWrapper.cs


示例15: CopyItems

 public static bool CopyItems(List<string> items, string destination)
 {
     try
         {
             var fs = new SHFILEOPSTRUCT
             {
                 wFunc = FileOperationType.FO_COPY,
                 pFrom = string.Join("\0", items.ToArray()) + '\0' + '\0',
                 pTo = destination + '\0' + '\0'
             };
             SHFileOperation(ref fs);
             return true;
         }
         catch (Exception)
         {
             return false;
         }
 }
开发者ID:varunkho,项目名称:SendTodropbox,代码行数:18,代码来源:SHFileOperation.cs


示例16: Perform

 public static bool Perform(string path, FileOperationFlags flags)
 {
     try
       {
     var fs = new SHFILEOPSTRUCT
     {
       wFunc = FileOperationType.FO_DELETE,
       pFrom = path + '\0' + '\0',
       fFlags = FileOperationFlags.FOF_ALLOWUNDO | flags
     };
     SHFileOperation(ref fs);
     return true;
       }
       catch (Exception)
       {
     return false;
       }
 }
开发者ID:nagilum,项目名称:Peek,代码行数:18,代码来源:FileIO.cs


示例17: WindowsRecycleFile

        public static bool WindowsRecycleFile(string path)
        {
            try
            {
                SHFILEOPSTRUCT fileop = new SHFILEOPSTRUCT();
                fileop.wFunc = FO_DELETE;
                fileop.pFrom = path + '\0' + '\0';
                fileop.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;

                int r = SHFileOperation(ref fileop);

                if (File.Exists(path))
                    Log.Error("Unable to recycle file" + path);
                else
                    Log.Info("Recycled file " + path);
            }
            catch (Exception ex)
            {
                Log.Error("Unable to recycle file " + path, ex);
                return false;
            }
            return true;
        }
开发者ID:danygolden,项目名称:gianfratti,代码行数:23,代码来源:BRecycle.cs


示例18: InteropSHFileOperation

		public InteropSHFileOperation()
		{

			this.fFlags = new FILEOP_FLAGS();
			this._ShFile = new SHFILEOPSTRUCT();
			this._ShFile.hwnd = IntPtr.Zero;
			this._ShFile.wFunc = FO_Func.FO_COPY;
			this._ShFile.pFrom = "";
			this._ShFile.pTo = "";
			this._ShFile.fAnyOperationsAborted = 0;
			this._ShFile.hNameMappings = IntPtr.Zero;
			this._ShFile.lpszProgressTitle = "";

		}
开发者ID:neurocache,项目名称:ilSFV,代码行数:14,代码来源:InteropSHFileOperation.cs


示例19: SHFileOperation

 public static extern Int32 SHFileOperation(
     ref SHFILEOPSTRUCT lpFileOp);
开发者ID:daxnet,项目名称:guluwin,代码行数:2,代码来源:ShellApi.cs


示例20: Recycle

        /// <summary>
        /// Actually do the move of a file/directory to the recycleBin
        /// </summary>
        /// <param name="path"></param>
        /// <returns>true if it succeed.</returns>
        public static bool Recycle(string path)
        {
            try
            {
            #if MONO
               // TODO: Find a way in Mono to send something to the recycle bin.
                try
                {
                    File.Delete(path);
                }
                catch
                {
                    try
                    {
                        Directory.Delete(path);
                    }
                    catch
                    {
                    }
                }
                return true;
                #else

                //alternative using visual basic dll:  FileSystem.DeleteDirectory(item.FolderPath,UIOption.OnlyErrorDialogs), RecycleOption.SendToRecycleBin);

                //moves it to the recyle bin
                var shf = new SHFILEOPSTRUCT();
                shf.wFunc = FO_DELETE;
                shf.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;
                string pathWith2Nulls = path + "\0\0";
                shf.pFrom = pathWith2Nulls;

                SHFileOperation(ref shf);
                return !shf.fAnyOperationsAborted;
                #endif

            }
            catch (Exception exception)
            {
                Palaso.Reporting.ErrorReport.NotifyUserOfProblem(exception, "Could not delete that book.");
                return false;
            }
        }
开发者ID:JohnThomson,项目名称:testBloom,代码行数:48,代码来源:ConfirmRecycleDialog.cs



注:本文中的SHFILEOPSTRUCT类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# SIOTSDB_HHZXDataContext类代码示例发布时间:2022-05-24
下一篇:
C# SHFILEINFO类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap