c# उपय हटाने के बजाय आप रीसायकल बिन में एक फ़ाइल कैसे डालते हैं?




रीसायकल बिन मीनिंग इन हिंदी (3)

सबसे अच्छा तरीका मैंने पाया है कि वीबी फ़ंक्शन FileSystem.DeleteFile का उपयोग करें। FileSystem.DeleteFile

Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile(file.FullName,
    Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs,
    Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin);

इसमें Microsoft.VisualBasic को एक संदर्भ के रूप में जोड़ने की आवश्यकता है, लेकिन यह .NET ढांचे का हिस्सा है और ऐसा अतिरिक्त निर्भरता नहीं है।

वैकल्पिक समाधानों के लिए पी / आवेदक को SHFileOperation की आवश्यकता होती है, साथ ही साथ सभी विभिन्न संरचनाओं / स्थिरांक को परिभाषित करते हैं। Microsoft.VisualBasic सहित। विज़ुअल बेसिक तुलना की तुलना में काफी सरल है।

कोर्स के प्रोग्रामेटिक समाधान ...


आपको अप्रबंधित कोड में छिपाने की आवश्यकता है। यहाँ एक स्थैतिक वर्ग है जिसका उपयोग मैं कर रहा हूं:

public static class Recycle
{
    private const int FO_DELETE = 3;
    private const int FOF_ALLOWUNDO = 0x40;
    private const int FOF_NOCONFIRMATION = 0x0010;

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 1)]
    public struct SHFILEOPSTRUCT
    {
        public IntPtr hwnd;
        [MarshalAs(UnmanagedType.U4)]
        public int wFunc;
        public string pFrom;
        public string pTo;
        public short fFlags;
        [MarshalAs(UnmanagedType.Bool)]
        public bool fAnyOperationsAborted;
        public IntPtr hNameMappings;
        public string lpszProgressTitle;
    }

    [DllImport("shell32.dll", CharSet = CharSet.Auto)]
    static extern int SHFileOperation(ref SHFILEOPSTRUCT FileOp);

    public static void DeleteFileOperation(string filePath)
    {
        SHFILEOPSTRUCT fileop = new SHFILEOPSTRUCT();
        fileop.wFunc = FO_DELETE;
        fileop.pFrom = filePath + '\0' + '\0';
        fileop.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION;

        SHFileOperation(ref fileop);
    }
}

परिशिष्ट:

  • सी # कोड में "Microsoft.VisualBasic का उपयोग" के लिए टीएसएस टीएसके @ जेफ
  • विज़ुअलबैसिक नामस्थान में सभी सामान डाल करने के लिए टीएसएस टीएसकेएस @ एमएस





io