AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 30.03.2016, 11:37   #1  
S.Kuskov ist offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3.449 / 1792 (66) ++++++++
Registriert seit: 28.04.2007
Ort: Калуга
Метод WinAPI::createDirectoryPath не работает с сетевыми папками
Метод WinAPI::createDirectoryPath не работает с сетевыми папками. Собственно ошибка:
Zitat:
Ошибка вызова статического метода ClrObject.
System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.ArgumentException: Путь UNC должен иметь вид \\server\share.
в System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
в System.IO.Path.NormalizePath(String path, Boolean fullCheck)
в System.IO.Path.GetFullPathInternal(String path)
в System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity)
в System.IO.Directory.CreateDirectory(String path)
--- Конец трассировки внутреннего стека исключений ---
в System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
в System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
в ClrBridgeImpl.InvokeClrStaticMethod(ClrBridgeImpl* , Char* pszClassName, Char* pszMethodName, Char* assemblyName, Int32 argsLength, ObjectWrapper** arguments, Boolean* argsAreByRef, Boolean* isException)
Видимо разработчики просто забили забыли про этот случай. Лечится просто:
X++:
// Verifyes or creates Path
//
static client public boolean createDirectoryPath(FilePath _path)
{
    int         ptr;
    ;

    _path = strLRTrim(_path);

    if (substr(_path,strlen(_path),1) != '\\') // Adding backslash gives a more simple while-loop!
    {
        _path += '\\';
    }

    ptr = strfind(_path, '\\', 1, strlen(_path));

// fix case '\\server\share'
// -->>
    if (_path like '\\\\\\\\*')
    {
        ptr = strfind(_path, '\\', 3, strlen(_path));
        ptr = strfind(_path, '\\', ptr + 1, strlen(_path));
    }
// <<--

    while (ptr)
    {
        WinAPI::createDirectory(substr(_path, 1, ptr));

        if (!WinAPI::folderExists(substr(_path, 1, ptr)))
        {
            break;
        }

        ptr = strfind(_path, '\\', ptr + 1, strlen(_path));
    }

    return WinAPI::folderExists(_path);
}

Суть в том чтобы при разборе вложенных катологов пропустить первую часть пути, содержащую имя сервера и сетевого ресурса

Geändert von S.Kuskov (30.03.2016 um 11:42 Uhr)
This post has been rated by: Pustik (2), Logger (2), gl00mie (2).
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
DAX 2009,5.0.1000.52 SP1 в таблице smmBusRelTable отсутствует метод convert2Customer Murlin DAX: Программирование 8 11.11.2009 16:23
Dynamics AX Geek: Finding files with WinAPI Blog bot DAX Blogs 1 08.10.2009 17:36
WinAPI. Ссылка (POINT) третьего уровня вложенности Владимир Максимов DAX: Программирование 2 06.02.2006 16:28
WinAPI::getLastError() DreamCreator DAX: Программирование 4 20.06.2005 10:03
Передача массива VARIANTов в Automation метод Maximin DAX: Программирование 0 09.10.2002 19:31

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 06:21 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.