मैं AlphaFS लाइब्रेरी का उपयोग करके निर्देशिकाओं की गणना करने के लिए एक PowerShell cmdlet लिख रहा हूँ। मैंने एक विधि बनाई है जो कुछ त्रुटियों को फ़िल्टर करेगी, लेकिन मुझे यह सुनिश्चित करने में परेशानी हो रही है कि निर्देशिका गणना फ़िल्टर त्रुटि हैंडलर को स्वीकार करेगा< /ए> प्रतिनिधि।

यहां फ़िल्टर और प्रतिनिधि है:

protected delegate bool AFSErrorHandler(long errorCode, string errorMessage, string path);

protected bool ErrorFilter(long errorCode, string errorMessage, string path)
{
    int accessDenied = 5;
    bool newException = errorCode == accessDenied;
    WriteWarning($"[{FSOErrors++}] Error: {errorCode} '{errorMessage}' Path: {path}");
    return newException;
}

लेकिन जब मैं यहां एक त्रुटि हैंडलर के रूप में प्रतिनिधि को जोड़ने की कोशिश कर रहा हूं, तो एक प्रकार का मेल नहीं है जिसे मैं हल नहीं कर सकता।

DirectoryEnumerationFilters DEF = new DirectoryEnumerationFilters();
AFSErrorHandler errorHandler = ErrorFilter;
DEF.ErrorFilter = errorHandler;

क्या मैं कुछ बेवकूफी कर रहा हूँ? कृपया सलाह दें। यदि आवश्यक हो तो मैं और कोड जोड़ सकता हूं।

0
Ash 22 अगस्त 2019, 14:16

1 उत्तर

सबसे बढ़िया उत्तर

बेशक मुझे एक नया प्रतिनिधि बनाने या फ़िल्टर को अलग से निर्दिष्ट करने की आवश्यकता नहीं थी। यह काम किया।

DEF = new DirectoryEnumerationFilters()
{
    ErrorFilter = delegate (int errorCode, string errorMessage, string path)
    {
        int accessDenied = 5;
        bool newException = errorCode == accessDenied;
        WriteWarning($"[{FSOErrors++}] Error: {errorCode} '{errorMessage}' Path: {path}");
        return newException;
    }
};
0
Ash 22 अगस्त 2019, 14:18