c訪問共享文件
⑴ ABC三台電腦需要互相共享文件,用同一個網路,其中A、B連wifi,C插的網線,C怎麼看不到共享的文件夾
是你沒有找到根本原因,按步驟排查。
第一:三台電腦相互ping一下,看是否能ping的通,我估計這步你那裡就滿足不了。
第二:一般無線路由器都是做二級路由的,所以說ping不通很正常。
第三:把路由器lan口IP設置為主路由的dhcp地址池中任意地址,關閉dhcp即可。
有其他不明白的可以繼續問我哦。
⑵ 如圖:電腦a如何訪問電腦c上的共享文件或共享資源
做互聯打通介面或者ftp或者用控制軟體
⑶ C#訪問共享文件夾問題
調用windows的API吧
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace WindowsApplication1
{
#region Windows API enum and struct
public enum ERROR_ID
{
ERROR_SUCCESS = 0, // Success
ERROR_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
}
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;
}
#endregion
/**//// <summary>
/// 連接網路上的共享文件夾
/// </summary>
public class NetworkSharedFolder
{
[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].dwType = RESOURCE_TYPE.RESOURCETYPE_DISK;
share_driver[0].lpLocalName = localPath;
share_driver[0].lpRemoteName = remotePath;
Disconnect(localPath);
int ret = WNetAddConnection2A( share_driver, password, username, 1);
return ret;
}
public static void Disconnect(string localpath)
{
WNetCancelConnection2A(localpath, 1, 1);
}
public static void Test()
{
int ret = NetworkSharedFolder.Connect(@"\\192.168.1.2\log", @"Y:", "user1", "user1");
System.Console.WriteLine("connect ret = " + ret);
}
}
}
⑷ 用戶訪問共享資源的方法以有幾種
1。通過網上鄰居
很多人多會,所以不說了。
2.影射網路驅動器
就是把在區域網中把別人的共享文件夾映射為一個本地的驅動器(比如Z盤),這樣你的電腦里就會多出一個盤Z,雙擊它就直接可以訪問那個共享文件夾了。Windows系統提供了幾種「映射網路驅動器」的方法,在命令行模式下,我們可以使用:「NET USE \計算機名\共享名\路徑」。除了使用命令來實現之外,還可以通過在「開始|網上鄰居」點擊右鍵,選擇「映射網路驅動器」。在彈出的窗口中可以直接輸入例如:「\計算機名\共享路徑」映射網路驅動器,也可以點擊「瀏覽」來找到目前區域網中存在的共享內容。 除了以上途徑之外,在「我的電腦」中的「工具」菜單中也能找到「映射網路驅動器」項目
3.通過UNC路徑
UNC路徑就是類似\\softer這樣的形式的網路路徑。它符合 \\servername\sharename 格式,其中 servername 是伺服器名,sharename 是共享資源的名稱。目錄或文件的 UNC 名稱可以包括共享名稱下的目錄路徑,格式為:\\servername\sharename\directory\filename。 例如softer計算機的名為it168的共享文件夾,用UNC表示就是\\softer\it168,如果是softer計算機的默認管理共享C$則用\\softer\c$來表示。
4.通過命令
運行: cmd net use UNC\IPC$ password /user:username
5.如何尋找網路中的共享文件夾
通過DFS:在大多數環境中,共享資源駐留在多台伺服器上的各個共享文件夾中。要訪問資源,用戶或程序必須將驅動器映射到共享資源的伺服器,或指定共享資源的通用命名約定 (UNC) 路徑。例如:\\伺服器名\共享名 或 \\伺服器名\共享名\路徑\文件名
通過 DFS(分布式文件系統),一台伺服器上的某個共享點能夠作為駐留在其他伺服器上的共享資源的宿主。DFS 以透明方式鏈接文件伺服器和共享文件夾,然後將其映射到單個層次結構,以便可以從一個位置對其進行訪問,而實際上數據卻分布在不同的位置。用戶不必再轉至網路上的多個位置以查找所需的信息,而只需連接到:\\DfsServer\Dfsroot。用戶在訪問此共享中的文件夾時將被重定向到包含共享資源的網路位置。這樣,用戶只需知道 DFS 根目錄共享即可訪問整個企業的共享資源。
發布活動共享文件
6.如何確保共享文件夾的安全
NTFS許可權
WIN2000硬碟內的文件與文件夾,如果是NTFS磁碟分區,則可以通過所謂的NTFS許可權來指派用戶或組對這些文件或文件夾的使用許可權。只ADMINISTRATORS組內的成員,才能有效地設置NTFS許可權。
指派文件夾的許可權:1、設置NTFS許可權的步驟:我的電腦——雙擊磁碟——選定文件夾——滑鼠右鍵——屬性——安全。2、許可權設置A、默認:EVERYONE許可權是無法更改的。因為它是繼承了上一層的許可權,若要更改則 必須清除「允許將來自父系的可繼承許可權傳播給該對象」。B、增加許可權用戶:「安全」選項卡——增加——選擇所需用戶——設置相應的許可權指派文件的許可權:1、我的電腦——雙擊磁碟——選定文件——單擊滑鼠右鍵——屬性——安全。 2、文件許可權的指派與文件夾許可權的指派類似。特殊許可權的指派:1、「安全」選項卡——單擊「高級「——」許可權
網路互訪可能出現的問題及解決方案
7.可能導致問題的原因:
默認情況下的簡單文件共享:
XP下啟用了簡單文件共享(以GUEST身份訪問,默認此用戶是禁用的); 工具-文件夾選項-使用簡單共享,如果選中的話,是以guest身份訪問的, 而默認情況下guest是被系統禁用的,所以使用簡單共享的時候是無論如何也訪問不了的. 正確的做法是使用時激活guest,或者把使用簡單共享的對勾去掉。
組策略中相關的安全設置:
防火牆
解決方案:
推薦使用經典網路訪問方式
修改組策略:計算機設置-windows設置-安全設置-用戶許可權分配-拒絕從網路訪問這台計算機里把guest刪掉,就可以訪問了 計算機設置-windows設置-安全設置-安全選項-網路訪問(本地帳戶的共享和安全模式)-選擇為經典 計算機設置-windows設置-安全設置-安全選項-帳戶(使用空白密碼的本地帳戶只允許進行控制台登陸)選擇停用
在防火牆中開放相應的埠或者關了 、
⑸ C#編程中如何在區域網內訪問某機器上的共享文件
只說關鍵類,不寫代碼了。
1:File、FileInfo、Directory、DirectoryInfo、Stream...
2:你描述的問題大概就需要上面的類。既然你已經知道目錄,那麼用Directory、DirectoryInfo這兩個類找出文件名應該不成問題。
3:知道文件了,那你的操作無非就是復制或者修改文件。
a:復制,這個只是一個下載的過程,用Stream即可完成.(網上例子應該一大堆.)
b:修改,那你只需在本地編輯一個文件,然後和它同名,然後上傳上去即可.(這個估計應該也不是什麼大問題).
建議:樓主寫代碼時,可以簡單的分為三個函數.
1:目錄掃描.
2:文件掃描.
3:文件下載.
好了,這時你的一個網頁小馬搞定了,你要的東西也搞定了.
代碼可以自己實現,我就不亂寫了。
⑹ 怎麼用C#訪問共享文件夾
用C#訪問共享目錄總是出現許可權問題,讓人很頭疼,研究了很久找到一種辦法,貼上代碼:
publicclassIdentityScope:IDisposable
{
//obtainsusertoken
[DllImport("advapi32.dll",SetLastError=true)]
staticexternboolLogonUser(stringpszUsername,stringpszDomain,stringpszPassword,
intdwLogonType,intdwLogonProvider,refIntPtrphToken);
//
[DllImport("kernel32.dll",CharSet=CharSet.Auto)]
externstaticboolCloseHandle(IntPtrhandle);
[DllImport("Advapi32.DLL")]
(IntPtrhToken);
[DllImport("Advapi32.DLL")]
staticexternboolRevertToSelf();
constintLOGON32_PROVIDER_DEFAULT=0;
constintLOGON32_LOGON_NEWCREDENTIALS=9;//域控中的需要用:Interactive=2
privatebooldisposed;
publicIdentityScope(stringsUsername,stringsPassword,stringsDomain)
{
//initializetokens
IntPtrpExistingTokenHandle=newIntPtr(0);
IntPtrpDuplicateTokenHandle=newIntPtr(0);
try
{
//gethandletotoken
boolbImpersonated=LogonUser(sUsername,sDomain,sPassword,
LOGON32_LOGON_NEWCREDENTIALS,LOGON32_PROVIDER_DEFAULT,refpExistingTokenHandle);
if(true==bImpersonated)
{
if(!ImpersonateLoggedOnUser(pExistingTokenHandle))
{
intnErrorCode=Marshal.GetLastWin32Error();
thrownewException("ImpersonateLoggedOnUsererror;Code="+nErrorCode);
}
}
else
{
intnErrorCode=Marshal.GetLastWin32Error();
thrownewException("LogonUsererror;Code="+nErrorCode);
}
}
finally
{
//closehandle(s)
if(pExistingTokenHandle!=IntPtr.Zero)
CloseHandle(pExistingTokenHandle);
if(pDuplicateTokenHandle!=IntPtr.Zero)
CloseHandle(pDuplicateTokenHandle);
}
}
protectedvirtualvoidDispose(booldisposing)
{
if(!disposed)
{
RevertToSelf();
disposed=true;
}
}
publicvoidDispose()
{
Dispose(true);
}
}
通過IdentityScope傳入目標機器的IP,用戶名和密碼就可以訪問到共享目錄了。
如何使用如下:
using(IdentityScopeiss=newIdentityScope(targetLoginName,targetPassword,targetIP))
{
//你的代碼
}
⑺ 怎麼打開C盤默認共享文件夾(C$)!!
1、首先打開電腦,之後點擊電腦桌面中的開始菜單,如下圖所示。