可以查看附件,或則使用以下代碼。應(yīng)該注釋的滿全了。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、愛民ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的愛民網(wǎng)站制作公司
隨便建一個窗口工程,窗口代碼帖入以下代碼。
Imports?System.IO
Imports?System.Text
Imports?System.Reflection
Public?Class?Form1
Const?ResName?As?String?=?"123.txt"?'?需要保存的資源名
Const?BufferSize?As?Integer?=?4096??'?復(fù)制時緩沖的大小
Private?Sub?Demo()
'?變量聲明
Dim?strDisplayText?As?StringBuilder?'?保存輸出信息
Dim?strResName?As?String????????????'?保存目標(biāo)資源的名稱
'?變量初始化
strDisplayText?=?New?StringBuilder()
strResName?=?String.Empty
'?獲取所有資源
strDisplayText.AppendLine("文件中存在以下資源:")
For?Each?strName?As?String?In?Assembly.GetExecutingAssembly.GetManifestResourceNames()
strDisplayText.AppendLine("??"??strName)
'?獲得目標(biāo)資源的全名
If?strName.EndsWith("."??ResName)?Then
strResName?=?strName
End?If
Next
'?目標(biāo)資源不存在
strDisplayText.AppendLine()
If?strResName?=?String.Empty?Then
strDisplayText.AppendLine("抱歉,沒有找名為"""??ResName??"""的資源")
Else?'?復(fù)制資源的代碼
'?打開資源文件,在End?Using的時候自動關(guān)閉。
Using?ms?As?UnmanagedMemoryStream?=?Assembly.GetExecutingAssembly.GetManifestResourceStream(strResName)
'?打開磁盤文件,在End?Using的時候自動關(guān)閉。
Using?fs?As?New?FileStream("C:\"??ResName,?FileMode.Create)
'?變量聲明
Dim?Buffer(BufferSize?-?1)?As?Byte??'?復(fù)制文件時的緩沖數(shù)組
Dim?ReadCount?As?Integer????????????'?此次讀取數(shù)據(jù)的數(shù)量
'?還有數(shù)據(jù)可以讀取的情況,一直循環(huán)
ReadCount?=?ms.Read(Buffer,?0,?BufferSize)
While?ReadCount??0
fs.Write(Buffer,?0,?ReadCount)?'?寫入到磁盤文件
ReadCount?=?ms.Read(Buffer,?0,?BufferSize)
End?While
End?Using
End?Using
strDisplayText.AppendLine("文件已經(jīng)復(fù)制完畢。")
End?If
'?顯示消息
MessageBox.Show(strDisplayText.ToString())
End?Sub
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
Call?Demo()
End
End?Sub
End?Class
我不會VB,但是都是.net。c#的代碼稍微轉(zhuǎn)換一下就可以了。
C#實現(xiàn)訪問網(wǎng)絡(luò)共享文件夾,使用?WNetAddConnection2A?和?WNetCancelConnection2A。
在目標(biāo)服務(wù)器建立共享文件夾,建立訪問賬號test;
public?enum?ERROR_ID
{
ERROR_SUCCESS?=?0,??//?Success?
ERROR_BUSY?=?170,
ERROR_MORE_DATA?=?234,
ERROR_NO_BROWSER_SERVERS_FOUND?=?6118,
ERROR_INVALID_LEVEL?=?124,
ERROR_ACCESS_DENIED?=?5,
ERROR_INVALID_PASSWORD?=?86,
ERROR_INVALID_PARAMETER?=?87,
ERROR_BAD_DEV_TYPE?=?66,
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,
ERROR_DEVICE_ALREADY_REMEMBERED?=?1202,
ERROR_NO_NET_OR_BAD_PATH?=?1203
}
public?enum?RESOURCE_SCOPE
{
RESOURCE_CONNECTED?=?1,
RESOURCE_GLOBALNET?=?2,
RESOURCE_REMEMBERED?=?3,
RESOURCE_RECENT?=?4,
RESOURCE_CONTEXT?=?5
}
public?enum?RESOURCE_TYPE
{
RESOURCETYPE_ANY?=?0,
RESOURCETYPE_DISK?=?1,
RESOURCETYPE_PRINT?=?2,
RESOURCETYPE_RESERVED?=?8,
}
public?enum?RESOURCE_USAGE
{
RESOURCEUSAGE_CONNECTABLE?=?1,
RESOURCEUSAGE_CONTAINER?=?2,
RESOURCEUSAGE_NOLOCALDEVICE?=?4,
RESOURCEUSAGE_SIBLING?=?8,
RESOURCEUSAGE_ATTACHED?=?16,
RESOURCEUSAGE_ALL?=?(RESOURCEUSAGE_CONNECTABLE?|?RESOURCEUSAGE_CONTAINER?|?RESOURCEUSAGE_ATTACHED),
}
public?enum?RESOURCE_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)]
public?struct?NETRESOURCE
{
public?RESOURCE_SCOPE?dwScope;
public?RESOURCE_TYPE?dwType;
public?RESOURCE_DISPLAYTYPE?dwDisplayType;
public?RESOURCE_USAGE?dwUsage;
[MarshalAs(UnmanagedType.LPStr)]
public?string?lpLocalName;
[MarshalAs(UnmanagedType.LPStr)]
public?string?lpRemoteName;
[MarshalAs(UnmanagedType.LPStr)]
public?string?lpComment;
[MarshalAs(UnmanagedType.LPStr)]
public?string?lpProvider;
}
public?class?NetworkConnection
{
[DllImport("mpr.dll")]
public?static?extern?int?WNetAddConnection2A?(NETRESOURCE[]?lpNetResource,?string?lpPassword,?string?lpUserName,?int?dwFlags);
[DllImport("mpr.dll")]
public?static?extern?int?WNetCancelConnection2A?(string?sharename,?int?dwFlags,?int?fForce);
public?static?int?Connect?(string?remotePath,?string?localPath,?string?username,?string?password)
{
NETRESOURCE[]?share_driver?=?new?NETRESOURCE[1];
share_driver[0].dwScope?=?RESOURCE_SCOPE.RESOURCE_GLOBALNET;
share_driver[0].dwType?=?RESOURCE_TYPE.RESOURCETYPE_DISK;
share_driver[0].dwDisplayType?=?RESOURCE_DISPLAYTYPE.RESOURCEDISPLAYTYPE_SHARE;
share_driver[0].dwUsage?=?RESOURCE_USAGE.RESOURCEUSAGE_CONNECTABLE;
share_driver[0].lpLocalName?=?localPath;
share_driver[0].lpRemoteName?=?remotePath;
Disconnect(localPath);
int?ret?=?WNetAddConnection2A(share_driver,?password,?username,?1);
return?ret;
}
public?static?int?Disconnect?(string?localpath)
{
return?WNetCancelConnection2A(localpath,?1,?1);
}
調(diào)用方式:
public?static?void?TestNetWorkConnection()
{
string?localpath?=?"X:";
//int?status?=?NetworkConnection.Connect(@"\\192.168.0.2\test",?localpath,?@"test",?"test");
int?status?=?NetworkConnection.Connect("\\\\192.168.0.2\\test",?localpath,?@"test",?"test");
if?(status?==?(int)ERROR_ID.ERROR_SUCCESS)
{
FileStream?fs?=?new?FileStream(localpath?+?@"\\123.txt",?FileMode.OpenOrCreate);
using?(StreamWriter?stream?=?new?StreamWriter(fs))
{
stream.WriteLine("你好呀,成功了");
stream.Flush();
stream.Close();
}
fs.Close();
}
else
{
Console.WriteLine(status);
}
NetworkConnection.Disconnect(localpath);
}
調(diào)用
net
share命令即可
在vb中
可用
shell
語句
,如
shell
"net
share
XXXXXX"
NET
SHARE
sharename
sharename=drive:path
[/USERS:number
|
/UNLIMITED]
[/REMARK:"text"]
[/CACHE:Manual
|
Documents|
Programs
|
None
]
sharename
[/USERS:number
|
/UNLIMITED]
[/REMARK:"text"]
[/CACHE:Manual
|
Documents
|
Programs
|
None]
{sharename
|
devicename
|
drive:path}
/DELETE
NET
SHARE
使網(wǎng)絡(luò)用戶可以使用某一服務(wù)器上的資源。
當(dāng)不帶選項使用本命令
時,它會列出該計算機上正在被共享的所有資源。對于每一種資源,Windows
都
會報告其設(shè)備名或路徑名,以及與之相關(guān)的描述性注釋。
sharename
指共享資源的網(wǎng)絡(luò)名。輸入
NET
SHARE
和一個共享名只會
顯示那個共享的有關(guān)信息。
drive:path
指定將被共享的目錄的絕對路徑。
/USERS:number
設(shè)置可以同時訪問共享資源的最大用戶數(shù)。
/UNLIMITED
指定用戶可以同時訪問共享資源的不受限制的數(shù)目。
/REMARK:"text"
添加一個有關(guān)資源的描述性注釋,應(yīng)將文本包含在引號中。
devicename
指一個或多個被共享名所共享的打印機
(LPT1:
至
LPT9:)。
/DELETE
終止資源的共享。
/CACHE:Automatic
啟用脫機客戶緩存和自動重新集成
/CACHE:Manual
啟用脫機客戶緩存和手動重新集成
/CACHE:No
告訴客戶脫機緩存不合適
NET
HELP
command
|
MORE
用于逐屏顯示幫助。
當(dāng)前題目:vb.net共享硬盤,win硬盤共享
鏈接地址:http://www.muchs.cn/article46/hcpheg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、動態(tài)網(wǎng)站、靜態(tài)網(wǎng)站、定制網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)