Как читать и писать в Windows "Сетевое расположение" - PullRequest
1 голос
/ 26 августа 2011

В Windows вы можете добавить FTP-сайт в качестве именованного сетевого расположения с помощью «мастера добавления сетевого расположения».Например, пользователь может добавить местоположение под названием «MyFtp».

В .Net, как я могу получить доступ (перечислить, прочитать и записать) файлы в этом месте?Windows абстрагирует реализацию (WebDAV, FTP или другое) и делает ее похожей на локальную папку для моей программы .Net?Если это так, как мне указать параметр path в File.WriteAllText(path, content)?Если нет, как я могу получить доступ к файлам?

Ответы [ 4 ]

4 голосов
/ 26 августа 2011

Нет, Windows обрабатывает это только в Проводнике. (Возможно, они удалили это в более новых версиях Windows.) Вам придется использовать некоторые встроенные классы или реализовать FTP, WebDav и любой другой протокол самостоятельно.

2 голосов
/ 27 августа 2011

Ярлык MyFtp в сетевых расположениях является ярлыком для расширения пространства имен оболочки FTP-папок. Если вы хотите использовать его, вам нужно будет выполнить привязку к ярлыку (через пространство имен оболочки), а затем перемещаться с помощью таких методов, как IShellFolder :: BindToObject или IShellItem :: BindToHandler. Это очень продвинутая вещь, и я не думаю, что есть что-то встроенное в C #, чтобы сделать это проще. Вот несколько ссылок для начала.

1 голос
/ 26 августа 2011

Вы можете попробовать это для чтения / записи содержимого файла в сетевой папке

//to read a file
string fileContent  = System.IO.File.ReadAllText(@"\\MyNetworkPath\ABC\\testfile1.txt");
//and to write a file
string content = "123456";
System.IO.File.WriteAllText(@"\\MyNetworkPath\ABC\\testfile1.txt",content);

Но вам нужно предоставить разрешения на чтение / запись для сетевого пути к принципалу, на котором работает приложение.

0 голосов
/ 26 августа 2011

вы можете использовать FtpWebRequest -Класс

вот пример кода (из MSDN):

public static bool DisplayFileFromServer(Uri serverUri)
{
    // The serverUri parameter should start with the ftp:// scheme.
    if (serverUri.Scheme != Uri.UriSchemeFtp)
    {
        return false;
    }
    // Get the object used to communicate with the server.
    WebClient request = new WebClient();

    // This example assumes the FTP site uses anonymous logon.
    request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
    try 
    {
        byte [] newFileData = request.DownloadData (serverUri.ToString());
        string fileString = System.Text.Encoding.UTF8.GetString(newFileData);
        Console.WriteLine(fileString);
    }
    catch (WebException e)
    {
        Console.WriteLine(e.ToString());
    }
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...