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、首先打开电脑,之后点击电脑桌面中的开始菜单,如下图所示。