Ⅰ VB 訪問網路共享文件夾並新建文件
網路共享文件夾不能直接用VB里的Open語句,那是為本地文件用的
網路文件夾用API函數OpenFile
具體用法:
FileHandle = OpenFile( "\\ " & IP地址 & 文件路徑 & "\ " & 文件名, lpReOpenBuff, OF_READ)
Ⅱ 如果不用net use的方法,vb.net 有辦法訪問共享文件或者共享文件夾嗎
我不會VB,但是都是.net。c#的代碼稍微轉換一下就可以了。
C#實現訪問網路共享文件夾,使用WNetAddConnection2A和WNetCancelConnection2A。
在目標伺服器建立共享文件夾,建立訪問賬號test;
publicenumERROR_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
}
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;
}
publicclassNetworkConnection
{
[DllImport("mpr.dll")]
(NETRESOURCE[]lpNetResource,stringlpPassword,stringlpUserName,intdwFlags);
[DllImport("mpr.dll")]
(stringsharename,intdwFlags,intfForce);
publicstaticintConnect(stringremotePath,stringlocalPath,stringusername,stringpassword)
{
NETRESOURCE[]share_driver=newNETRESOURCE[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);
intret=WNetAddConnection2A(share_driver,password,username,1);
returnret;
}
publicstaticintDisconnect(stringlocalpath)
{
returnWNetCancelConnection2A(localpath,1,1);
}
調用方式:
()
{
stringlocalpath="X:";
//intstatus=NetworkConnection.Connect(@"\192.168.0.2 est",localpath,@"test","test");
intstatus=NetworkConnection.Connect("\\192.168.0.2\test",localpath,@"test","test");
if(status==(int)ERROR_ID.ERROR_SUCCESS)
{
FileStreamfs=newFileStream(localpath+@"\123.txt",FileMode.OpenOrCreate);
using(StreamWriterstream=newStreamWriter(fs))
{
stream.WriteLine("你好呀,成功了");
stream.Flush();
stream.Close();
}
fs.Close();
}
else
{
Console.WriteLine(status);
}
NetworkConnection.Disconnect(localpath);
}
Ⅲ 如何用VB代碼打開區域網上共享的文件夾
在網上鄰居中找到你要復制文件夾的那台電腦,而且那個文件夾必須是共享的,然後你在網上鄰居中雙擊進入那台電腦,裡面就有那個文件夾了。不用那麼麻煩。
Ⅳ 用VB怎樣打開網路上共享的文件(此文件所在目錄加有共享密碼)
進入共享文件夾可以用直接路徑的,不過如果要進入共享文件夾下子文件夾里,要先進入共享文件夾,然後再過,不然可能會出現文件查找不到(就算沒有密碼也有可能會出現)例如:進入區域網客戶機PC的共享文件夾basic下子文件夾file里的文件text.txt就要先訪問//pc/basic,寫入密碼,然後再進入//pc/basic/file/text.txt
Ⅳ 請教一下「VB 訪問網路共享文件夾並新建文件」您是怎麼做的謝謝!
VB訪問網路共享文件夾與訪問本地文件夾是沒有什麼區別的,比如你要打開與你的電腦同一個區域網的另一台名為「abcd」的電腦的共享文件夾「xxx」中的文本文件「123.txt」,可以這樣:
Open "\\abcd\xxx\123.txt" For Input As #1
也可以用IP地址,比如:
Open "\\192.168.1.103\xxx\123.txt" For Input As #1