C# 读取服务器上的共享文件

本文介绍使用C#实现文件的局域网共享路径读取、文件夹内文件的复制及更新过程。通过FileStream类读取文件,并利用FileInfo和DirectoryInfo进行文件与目录的操作,实现对本地文件和远程更新文件的有效同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2013-11-19 13:23:13

LocalPath = Application.StartupPath + @"\";

 DirectoryInfo DirInfo = new DirectoryInfo(@"\\192.168.1.168\Edition");

public static void CopyFile(System.IO.DirectoryInfo DirInfo , string LocalPath )

        {

            string sourcePath = path.FullName;

            System.IO.FileInfo[] files = path.GetFiles();

            foreach (System.IO.FileInfo file in files)

            {

                string sourceFileFullName = file.FullName;

                string destFileFullName = sourceFileFullName.Replace(sourcePath, desPath);

                file.CopyTo(destFileFullName, true);

            }

        }

----待研究

C#中可以用FileStream 这个类来读取文件,包括局域网中的共享文件,它有很多构造函数,其中有一个是FileStream (String, FileMode, FileAccess) ;String 为你要读取的文件的路径,是全路径,如果是读取局域网中的共享文件,可以表示为 \\机器名\共享目录\文件名

----判读更新文件的时间

DateTime dtLocal = File.GetLastWriteTime(LocalPath + file.ToString());//本地文件修改日期   

DateTime dtUpdate = File.GetLastWriteTime(sourceFileFullName);//更新目录文件的修改日期   

                        if (dtUpdate != dtLocal)//可用更新   

 

 


 

int filesum = 0; //更新文件数
string sourcePath = path.FullName;
if (Directory.Exists(sourcePath))
{
System.IO.FileInfo[] files = path.GetFiles();
foreach (System.IO.FileInfo file in files)
{
string sourceFileFullName = file.FullName;
string destFileFullName = sourceFileFullName.Replace(sourcePath, LocalPath);
//本地目录有相同文件名就需要判断是否为可用更新文件
if (File.Exists(LocalPath + file.ToString()) == true)
{
DateTime dtLocal = File.GetLastWriteTime(LocalPath + file.ToString());//本地文件修改日期
DateTime dtUpdate = File.GetLastWriteTime(sourceFileFullName);//更新目录文件的修改日期

if (dtUpdate != dtLocal)//可用更新
{
++filesum;
//this.lbl_FileMessage.Text = "正在复制文件:" + FileName + ",数量:" + filesum.ToString();
file.CopyTo(destFileFullName, true);
}
}
else
{
++filesum;
//this.lbl_FileMessage.Text = "正在复制文件:" + FileName + ",数量:" + filesum.ToString();
file.CopyTo(destFileFullName, true);
}
}

}
else
{
//MessageBox.Show("更新路径错误,请联系管理员!", "提示");
filesum=-1;
}
return filesum;

C# 中,通过服务访问共享文件服务器通常涉及网络编程和文件系统操作。以下是一个简单的步骤概述: 1. **添加命名空间**:首先,确保你的项目引用了 System.IO 和 System.Net 等必要的命名空间,它们包含了处理文件I/O和网络连接的相关功能。 ```csharp using System; using System.IO; using System.Net; ``` 2. **创建文件服务类**:定义一个名为 FileService 的类,用于封装对共享文件服务器的操作,比如读取、写入或列出目录。 ```csharp public class FileService { private readonly string _sharedFilePath = "\\path\\to\\shared\\folder"; public void ReadFile(string fileName) => File.ReadAllText(_sharedFilePath + "\\" + fileName); public void WriteFile(string fileName, string content) => File.WriteAllText(_sharedFilePath + "\\" + fileName, content); public string[] ListFiles() => Directory.GetFiles(_sharedFilePath); } ``` 3. **实例化并使用服务**:在需要的地方,你可以创建 FileService 类的实例,并调用其方法来访问文件。 ```csharp FileService fileService = new FileService(); string fileContent = fileService.ReadFile("example.txt"); fileService.WriteFile("newFile.txt", "This is a test."); string[] filesInFolder = fileService.ListFiles(); ``` 4. **安全性和权限考虑**:确保应用程序有足够的权限访问共享文件夹,可能需要在服务器端配置用户或权限设置,也可能涉及到身份验证和授权。 5. **异常处理**:记得在关键操作上加入适当的错误处理,以防网络中断、文件不存在等问题。 **相关问题--:** 1. 使用 C# 访问共享文件服务器时如何处理跨域问题? 2. 如何在 C# 中实现更复杂的文件上传功能? 3. 如果共享文件服务器采用的是 Windows 守护进程,如何在 C# 应用程序中异步地获取文件更新通知?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值