C#如何去連接網絡共享目錄

问题描述

在C#的(Winfrom或WEB)中如何去連接網絡上共享的目錄呢?

解决方案

解决方案二:
oo
解决方案三:
将网络路径映射为本地的一个虚拟盘然后就按操作本机文件一样操作这个文件就可以了
解决方案四:
网络上共享的目录如果权限比较低。在winform是里可以直接当作本地盘去操作的。如果有设有账号密码。则在代码里运行cmd执行netuse命令。把用户名密码作为参数打通路径之后再操作。b/s里无法访问共享。因为结构不一样。客户在ie访问的时候根本就没有这个环境。你只能把服务器的局域网环境里的文件取过来放在iis目录下。或用网址访问
解决方案五:
我在C#下實現,有代碼沒
解决方案六:
使用win32api[DllImport("mpr.dll")]publicstaticexternintWNetAddConnection2A(NETRESOURCE[]lpNetResource,stringlpPassword,stringlpUserName,intdwFlags);[DllImport("mpr.dll")]publicstaticexternintWNetCancelConnection2A(stringsharename,intdwFlags,intfForce);publicstaticintConnect(stringremotePath,stringlocalPath,stringusername,stringpassword){NETRESOURCE[]share_driver=newNETRESOURCE[1];share_driver[0].dwType=RESOURCE_TYPE.RESOURCETYPE_DISK;share_driver[0].lpLocalName=localPath;share_driver[0].lpRemoteName=remotePath;Disconnect(localPath);intret=WNetAddConnection2A(share_driver,password,username,1);returnret;}publicstaticvoidDisconnect(stringlocalpath){WNetCancelConnection2A(localpath,1,1);}

解决方案七:
C#里面调用cmd去执行netuse****的命令建立IPC连接。然后可以映射成为一个本地盘符。这样就可以像操作本地盘一样去操作远程映射目录了。
解决方案八:

publicclassWebForm2:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.ButtonButton1;[DllImport("mpr.dll",EntryPoint="WNetAddConnection2")]privatestaticexternuintWNetAddConnection2([In]NETRESOURCElpNetResource,stringlpPassword,stringlpUsername,uintdwFlags);[DllImport("Mpr.dll")]privatestaticexternuintWNetCancelConnection2(stringlpName,uintdwFlags,boolfForce);[StructLayout(LayoutKind.Sequential)]privateclassNETRESOURCE{publicintdwScope;publicintdwType;publicintdwDisplayType;publicintdwUsage;publicstringLocalName;publicstringRemoteName;publicstringComment;publicstringProvider;}privatevoidPage_Load(objectsender,System.EventArgse){//在這裡放置使用者程式碼以初始化網頁}#regionWebForm設計工具產生的程式碼overrideprotectedvoidOnInit(EventArgse){////CODEGEN:此為ASP.NETWebForm設計工具所需的呼叫。//InitializeComponent();base.OnInit(e);}///<summary>///此為設計工具支援所必須的方法-請勿使用程式碼編輯器修改///這個方法的內容。///</summary>privatevoidInitializeComponent(){this.Button1.Click+=newSystem.EventHandler(this.Button1_Click);this.Load+=newSystem.EventHandler(this.Page_Load);}#endregionprivatevoidButton1_Click(objectsender,System.EventArgse){NETRESOURCEmyNetResource=newNETRESOURCE();myNetResource.dwScope=2;//2:RESOURCE_GLOBALNETmyNetResource.dwType=1;//1:RESOURCETYPE_ANYmyNetResource.dwDisplayType=3;//3:RESOURCEDISPLAYTYPE_GENERICmyNetResource.dwUsage=1;//1:RESOURCEUSAGE_CONNECTABLEmyNetResource.LocalName="Y:";myNetResource.RemoteName=@"\ftptemp";myNetResource.Provider=null;uintnret=WNetAddConnection2(myNetResource,"user","pwd",0);if(nret==0){Response.Write("0");}}為什麼我這樣還是不能將Y:映射出來啊
解决方案:
使用NETUSE来保存用户和密码.NET下就可以直接访问了http://blog.csdn.net/zgke/archive/2008/12/05/3451599.aspx
解决方案:
引用6楼kugou123的回复:

C#里面调用cmd去执行netuse****的命令建立IPC连接。然后可以映射成为一个本地盘符。这样就可以像操作本地盘一样去操作远程映射目录了。

netuse不是我想要的
解决方案:
有誰看一下我的代碼,是哪裡有問題啊?
解决方案:
引用8楼zgke的回复:

使用NETUSE来保存用户和密码.NET下就可以直接访问了http://blog.csdn.net/zgke/archive/2008/12/05/3451599.aspx

你這個還是用netuse,我知道調用Process是可以實現批處理的功能啦,但是我不想用這個WNetaddConnection2怎麼實現
解决方案:
引用7楼david0620的回复:

publicclassWebForm2:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.ButtonButton1;[DllImport("mpr.dll",EntryPoint="WNetAddConnection2")]privatestaticexternuintWNetAddConnection2([In]NETRESOURCElpNetResource,stringlpPassword,stringlpUsername,uintdwFlags);[DllImport("Mpr.dll")]privatestaticexternuintWNetCancelConnection2(stringlpName,uintdwFl…

我在5楼贴的[DllImport("mpr.dll")]publicstaticexternintWNetAddConnection2A(NETRESOURCE[]lpNetResource,stringlpPassword,stringlpUserName,intdwFlags);调用时需要传入的是一个数组类型,你把传入类型给改了。我本地又试了一下可以映射上的。NETRESOURCE[]share_driver=newNETRESOURCE[1];share_driver[0].dwType=RESOURCE_TYPE.RESOURCETYPE_DISK;share_driver[0].lpLocalName=localPath;share_driver[0].lpRemoteName=remotePath;intret=WNetAddConnection2A(share_driver,password,username,1);
解决方案:
引用12楼flyjimi的回复:

引用7楼david0620的回复:publicclassWebForm2:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.ButtonButton1;[DllImport("mpr.dll",EntryPoint="WNetAddConnection2")]privatestaticexternuintWNetAddConnection2([In]NETRESOURCElpNetResource,stringlpPassword,stringlpUsername,uintdwFlags);[DllImport("Mpr.dll")]privatestaticexternuintWNetCancel…

怎麼我用你的代碼還是不行啊?你看看我的代碼看看哪裡有問題?指點一下..
解决方案:
up
解决方案:
引用12楼flyjimi的回复:

引用7楼david0620的回复:publicclassWebForm2:System.Web.UI.Page{protectedSystem.Web.UI.WebControls.ButtonButton1;[DllImport("mpr.dll",EntryPoint="WNetAddConnection2")]privatestaticexternuintWNetAddConnection2([In]NETRESOURCElpNetResource,stringlpPassword,stringlpUsername,uintdwFlags);[DllImport("Mpr.dll")]privatestaticexternuintWNetCancel…

用你的代碼報錯:[DllImport("mpr.dll")]publicstaticexternintWNetAddConnection2A(NETRESOURCE[]lpNetResource,stringlpPassword,stringlpUserName,intdwFlags);[DllImport("mpr.dll")]publicstaticexternintWNetCancelConnection2A(stringsharename,intdwFlags,intfForce);NETRESOURCE[]share_driver=newNETRESOURCE[1];share_driver[0].dwType=RESOURCE_TYPE.RESOURCETYPE_DISK;share_driver[0].lpLocalName=localPath;share_driver[0].lpRemoteName=remotePath;Disconnect(localPath);intret=WNetAddConnection2A(@"serveriptemp","pwd","user",1);returnret;
解决方案:
報說沒有usingNETRESOURCE
解决方案:
做个记号
解决方案:
usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Runtime.InteropServices;namespaceWindowsApplication1{#regionWindowsAPIenumandstructpublicenumERROR_ID{ERROR_SUCCESS=0,//SuccessERROR_MORE_DATA=234,ERROR_NO_BROWSER_SERVERS_FOUND=6118,ERROR_INVALID_LEVEL=124,ERROR_ACCESS_DENIED=5,ERROR_INVALID_PARAMETER=87,ERROR_NOT_ENOUGH_MEMORY=8,ERROR_NETWORK_BUSY=54,ERROR_BAD_NETPATH=53,ERROR_NO_NETWORK=1222,ERROR_INVALID_HANDLE_STATE=1609,ERROR_EXTENDED_ERROR=1208}publicenumRESOURCE_SCOPE{RESOURCE_CONNECTED=1,RESOURCE_GLOBALNET=2,RESOURCE_REMEMBERED=3,RESOURCE_RECENT=4,RESOURCE_CONTEXT=5}publicenumRESOURCE_TYPE{RESOURCETYPE_ANY=0,RESOURCETYPE_DISK=1,RESOURCETYPE_PRINT=2,RESOURCETYPE_RESERVED=8,}publicenumRESOURCE_USAGE{RESOURCEUSAGE_CONNECTABLE=1,RESOURCEUSAGE_CONTAINER=2,RESOURCEUSAGE_NOLOCALDEVICE=4,RESOURCEUSAGE_SIBLING=8,RESOURCEUSAGE_ATTACHED=16,RESOURCEUSAGE_ALL=(RESOURCEUSAGE_CONNECTABLE|RESOURCEUSAGE_CONTAINER|RESOURCEUSAGE_ATTACHED),}publicenumRESOURCE_DISPLAYTYPE{RESOURCEDISPLAYTYPE_GENERIC=0,RESOURCEDISPLAYTYPE_DOMAIN=1,RESOURCEDISPLAYTYPE_SERVER=2,RESOURCEDISPLAYTYPE_SHARE=3,RESOURCEDISPLAYTYPE_FILE=4,RESOURCEDISPLAYTYPE_GROUP=5,RESOURCEDISPLAYTYPE_NETWORK=6,RESOURCEDISPLAYTYPE_ROOT=7,RESOURCEDISPLAYTYPE_SHAREADMIN=8,RESOURCEDISPLAYTYPE_DIRECTORY=9,RESOURCEDISPLAYTYPE_TREE=10,RESOURCEDISPLAYTYPE_NDSCONTAINER=11}[StructLayout(LayoutKind.Sequential)]publicstructNETRESOURCE{publicRESOURCE_SCOPEdwScope;publicRESOURCE_TYPEdwType;publicRESOURCE_DISPLAYTYPEdwDisplayType;publicRESOURCE_USAGEdwUsage;[MarshalAs(UnmanagedType.LPStr)]publicstringlpLocalName;[MarshalAs(UnmanagedType.LPStr)]publicstringlpRemoteName;[MarshalAs(UnmanagedType.LPStr)]publicstringlpComment;[MarshalAs(UnmanagedType.LPStr)]publicstringlpProvider;}#endregion/**////<summary>///连接网络上的共享文件夹///</summary>publicclassNetworkSharedFolder{[DllImport("mpr.dll")]publicstaticexternintWNetAddConnection2A(NETRESOURCE[]lpNetResource,stringlpPassword,stringlpUserName,intdwFlags);[DllImport("mpr.dll")]publicstaticexternintWNetCancelConnection2A(stringsharename,intdwFlags,intfForce);publicstaticintConnect(stringremotePath,stringlocalPath,stringusername,stringpassword){NETRESOURCE[]share_driver=newNETRESOURCE[1];share_driver[0].dwType=RESOURCE_TYPE.RESOURCETYPE_DISK;share_driver[0].lpLocalName=localPath;share_driver[0].lpRemoteName=remotePath;Disconnect(localPath);intret=WNetAddConnection2A(share_driver,password,username,1);returnret;}publicstaticvoidDisconnect(stringlocalpath){WNetCancelConnection2A(localpath,1,1);}publicstaticvoidTest(){intret=NetworkSharedFolder.Connect(@"\192.168.1.2log",@"Y:","user1","user1");System.Console.WriteLine("connectret="+ret);}}}

时间: 2024-10-31 20:46:32

C#如何去連接網絡共享目錄的相关文章

按button怎去另一網頁,同時能開新網頁

问题描述 按button怎去另一網頁,同時能開新網頁 解决方案 解决方案二:你的buton是WinForm上的呢还是Web上的呢.如果是winform中,参照System.Diagnostics.Process.Start("IEXPLORE.exe","...");解决方案三:是webfrom謝謝解决方案四:weborm做到嗎?解决方案五:iftextbox=ABC,button才觸發"原網頁開啟另一頁,彈出一個新網頁"可以怎做,謝謝解决方案六

asp.net網站發布的問題,請好心的大哥們幫忙看看.

问题描述 我用的是WinXP+IIS5.1做的一個asp.net程序,在其中有一個上傳文件的功能頁面.現在的問題是:在這個頁面中的一個DataGrid中,主要列出上傳后的文件列表,使用者點擊上傳文件名字(我做了鏈接)時,可以打開這個文件,如常見的.doc或Excel文件,其它的.zip文件則會提示是否下載.但是問題是,在點擊一個文件名的鏈接時,它會提示彈出windows驗證窗口,我查過有關IIS設置的相關資料,我在IIS中的文目錄和網站文件目錄的安全性設置了匿名訪問用戶為:IUSR_(我的機器名

【整理】favicon.ico 相关内容整理

      所谓 favicon,即 Favorites Icon 的缩写,顾名思义,是可以是的浏览器收藏夹中除显示相应标题外,还能以图标方式区别不同的网站.当然,这不仅仅是 Favicon 的全部,根据浏览器的不同,Favicon 显示也有所区别:在大多数主流浏览器如 FireFox 和 Internet Explorer (5.5 及以上版本)中,favicon 不仅在收藏夹中显示,还会同时出现在地址栏上,这时用户可以拖曳 favicon 到桌面以建立到网站的快捷方式:除此之外,标签式浏览器

備份服務器端SQL SERVER數據庫至本地目錄

server /*數據庫備份存儲過程*//*支持從服務器備份數據至本地機器上*/-- 作者:yoncenCREATE PROCEDURE up_dbbackup(@backup_db_name VARCHAR(128),@filename VARCHAR(128), /*備份路徑+文件名*/@flag VARCHAR(60) OUTPUT)ASSET NOCOUNT ONDECLARE @sql NVARCHAR(4000),@par NVARCHAR(1000)IF NOT EXISTS( 

备份服务器端SQL SERVER数据库至本地目录

server|备份|服务器|数据|数据库 /*數據庫備份存儲過程*//**//*支持從服務器備份數據至本地機器上*/-- CREATE PROCEDURE up_dbbackup(@backup_db_name VARCHAR(128),@filename VARCHAR(128), /**//*備份路徑+文件名*/@flag VARCHAR(60) OUTPUT)ASSET NOCOUNT ONDECLARE @sql NVARCHAR(4000),@par NVARCHAR(1000)IF

一家美容公司在同一个城市的不同地点开了三个美容店要联起来共享数据库,采用哪种编成方法比较合适,开发费多少?功能大致要求如下:

问题描述 一家美容公司在同一个城市的不同地点开了三个美容店要联起来共享数据库,采用哪种编成方法比较合适,开发费多少?功能大致要求如下:(1)三个美容店的距离最大为27.3公里,要求商品入库.续费.消费等等所有服务即时无冲突.(2)有完整的进销存(3)会员制.会员一次存入n元,不同服务项目都按次数消费.(4)不仅适合会员,还应适合散客等非会员服务.(5)软件在日常使用过程中要求会员记帐.汇总等金额上不能出差错.(6)其他功能待定老板看了网上一些现成的同类软件,但都不是他所期望的功能,想要求单独开发

花十二個月建立一個成功的網站

翻译:Refly原文链接:Build a successful site in 12 months (感谢Refly朋友的来稿!翻译的原文也是转载,由于没有Webmaster World的帐户,就没有去考证原作者是谁了. -雷声大) 在這裡看到的,作者列出27個步驟,照著這些步驟作就可以讓網站進行成功的搜尋引擎最佳化,作者也宣稱,這些方法對於Google是100%成立的. 那我就直接翻成中文然後重寫好了: 1. 準備內容在註冊網址之前就應該先蒐集至少「一百頁」的內容,這些內容必須是有價值的.不違

.NET Framework環境下的ASP網頁製作(1) (王国荣)

網路公司裁員.網站關閉.電子報停刊-,經歷電子商務的退潮之後,有人開始質疑電子商務是不是被高估了.也許網際網路不再編織賺大錢的美夢,但經過這幾年的洗禮,網際網路已經成為大眾生活中的一部份,據說台北市的國中生能製作網頁者已經相當普遍,由此可見一斑,當網頁製作變成一般知識之後,想生存於網際網路,夠不夠專業將是決勝因素. 在 .NET Framework底下,筆者很欣慰ASP(Active Server Pages)變得更專業了,簡單地回顧過去的ASP,我們至少可以指出幾個缺點: 只能使用VB Scr

Client端不安裝Oracle而用PowerBuilder直連的方法

client|oracle   Client端不安裝Oracle的方法 廣東中山   謝殿宏 2001/04/03   前言: 曾在網上見到許多人問Client端不安裝Oracle而使PB程序連上後臺Oracle資料庫的方法, 本人從事pb+oracle開發已有些時日,每次都得安裝Oracle的Client端程式,而我面對的 Client端則有幾百個之多,工作量可以想象何其大,所以就在這方面動了下腦筋,經過反復 試驗,終於搞定.   開發環境:    前臺:Pb6.5+win95+Oracle