Как я получаю доступ к доле файла, программно [дублирующейся]

Вы могли бы хотеть зарегистрироваться проект WordNet в Принстонском университете. Один возможный подход к этому был бы к первому показу каждой фразой через список стоп-слова (для удаления "общих" слов такой как, "к", и т.д.) Тогда для каждого из остающихся слов в каждой фразе, Вы могли вычислить семантическое "подобие" между каждым из слов в другой фразе с помощью меры по расстоянию на основе WordNet. Мера по расстоянию могла быть чем-то как: количество дуг необходимо пройти в WordNet для получения от word1 до word2.

Жаль это - довольно высокий уровень. Я, очевидно, никогда не пробовал это. Просто быстрая мысль.

10
задан Cœur 10 September 2017 в 06:02
поделиться

2 ответа

Принятый ответ на этот вопрос здесь , кажется, стоит изучить; предлагается использовать функцию Win32 API WNetUseConnection .

Из MSDN:

Функция WNetUseConnection делает подключение к сетевому ресурсу. В функция может перенаправить локальное устройство к сетевому ресурсу.

Что, кажется, выполняет то, что вы ищете, без упоминания net.exe . Это поможет?

4
ответ дан 3 December 2019 в 21:22
поделиться

Для этого можно использовать WNetAddConnection. Вам нужно будет использовать pInvoke. приведенный ниже код работал у меня после того, как я настроил объявления pInvoke. Второй блок кода (ниже) содержит объявления pInvoke - просто вставьте его в класс.


        public static void CopyFile(string from, string shareName, string username, string password)
        {
            NETRESOURCE nr = new NETRESOURCE();
            nr.dwType = ResourceType.RESOURCETYPE_DISK;
            nr.lpLocalName = null;
            nr.lpRemoteName = shareName;
            nr.lpProvider = null;

            int result = WNetAddConnection2(nr,  password,  username, 0);
            System.IO.File.Copy(from, System.IO.Path.Combine(shareName, System.IO.Path.GetFileName(from)));
        }


Вам нужно будет вставить следующий вспомогательный код в класс (взятый из pInvoke.Net). Не забудьте добавить в свой код параметр using:

using System.Runtime.InteropServices

        [DllImport("Mpr.dll", EntryPoint = "WNetAddConnection2", CallingConvention = CallingConvention.Winapi)]
        private static extern int WNetAddConnection2(NETRESOURCE lpNetResource, string lpPassword,  
                                      string lpUsername, System.UInt32 dwFlags);

        [StructLayout(LayoutKind.Sequential)]
        private class NETRESOURCE
        {
            public ResourceScope dwScope = 0;
            public ResourceType dwType = 0;
            public ResourceDisplayType dwDisplayType = 0;
            public ResourceUsage dwUsage = 0;
            public string lpLocalName = null;
            public string lpRemoteName = null;
            public string lpComment = null;
            public string lpProvider = null;
        };

        public enum ResourceScope
        {
            RESOURCE_CONNECTED = 1,
            RESOURCE_GLOBALNET,
            RESOURCE_REMEMBERED,
            RESOURCE_RECENT,
            RESOURCE_CONTEXT
        };

        public enum ResourceType
        {
            RESOURCETYPE_ANY,
            RESOURCETYPE_DISK,
            RESOURCETYPE_PRINT,
            RESOURCETYPE_RESERVED
        };

        public enum ResourceUsage
        {
            RESOURCEUSAGE_CONNECTABLE = 0x00000001,
            RESOURCEUSAGE_CONTAINER = 0x00000002,
            RESOURCEUSAGE_NOLOCALDEVICE = 0x00000004,
            RESOURCEUSAGE_SIBLING = 0x00000008,
            RESOURCEUSAGE_ATTACHED = 0x00000010,
            RESOURCEUSAGE_ALL = (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED),
        };

        public enum ResourceDisplayType
        {
            RESOURCEDISPLAYTYPE_GENERIC,
            RESOURCEDISPLAYTYPE_DOMAIN,
            RESOURCEDISPLAYTYPE_SERVER,
            RESOURCEDISPLAYTYPE_SHARE,
            RESOURCEDISPLAYTYPE_FILE,
            RESOURCEDISPLAYTYPE_GROUP,
            RESOURCEDISPLAYTYPE_NETWORK,
            RESOURCEDISPLAYTYPE_ROOT,
            RESOURCEDISPLAYTYPE_SHAREADMIN,
            RESOURCEDISPLAYTYPE_DIRECTORY,
            RESOURCEDISPLAYTYPE_TREE,
            RESOURCEDISPLAYTYPE_NDSCONTAINER
        };

13
ответ дан 3 December 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: