C# 如果要使用FileStream选择一个文件并进行复制,请使用什么文件模式?
假设有一个函数C# 如果要使用FileStream选择一个文件并进行复制,请使用什么文件模式?,c#,.net,filestream,C#,.net,Filestream,假设有一个函数 public void UploadSomewhere(FileStream fs) 如果我使用FileStream指向文件路径还不够,我还需要选择FileMode,如果您只是复制/移动文件,我不确定什么是正确的FileMode。有什么想法吗?见 如果您只需要阅读文件,我建议您选择FileMode。打开请参阅 如果您只需要阅读文件,我建议您选择FileMode。如果您只是处理/移动文件,并且您已经知道路径(正如我从问题中了解的那样),那么您根本不需要FieStream。使用Fi
public void UploadSomewhere(FileStream fs)
如果我使用FileStream指向文件路径还不够,我还需要选择FileMode
,如果您只是复制/移动文件,我不确定什么是正确的FileMode。有什么想法吗?见
如果您只需要阅读文件,我建议您选择FileMode。打开请参阅
如果您只需要阅读文件,我建议您选择FileMode。如果您只是处理/移动文件,并且您已经知道路径(正如我从问题中了解的那样),那么您根本不需要FieStream
。使用File.Move
或File.Copy
功能就足够了。如果您只是处理/移动文件,并且您已经知道路径(正如我从问题中了解的那样),您根本不需要FieStream
。使用File.Move
或File.Copy
功能就足够了。如果要复制文件FileMode。打开和FileAccess.Read
如果要在此过程中共享对文件的访问,请同时指定FileShare
选项
有关详细信息,请查看。如果要复制文件FileMode。请打开和FileAccess。阅读
如果要在此过程中共享对文件的访问,请同时指定FileShare
选项
查看以获取更多信息。如果要使用FileStream复制文件,下面的示例应为您指明正确的方法
using (FileStream sourceFile = new FileStream("c:\\pathToSourceFile", FileMode.Open,FileAccess.Read))
{
using (FileStream destFile = new FileStream("c:\\pathToDestinationFile", FileMode.Create))
{
int bufferSize = 65536;
int bytesRead = -1;
byte[] bytes = new byte[bufferSize];
while ((bytesRead = sourceFile.Read(bytes, 0, bufferSize)) > 0)
{
destFile.Write(bytes, 0, bytesRead);
}
}
}
如果您想使用FileStream复制文件,下面的示例应该为您指出正确的方法
using (FileStream sourceFile = new FileStream("c:\\pathToSourceFile", FileMode.Open,FileAccess.Read))
{
using (FileStream destFile = new FileStream("c:\\pathToDestinationFile", FileMode.Create))
{
int bufferSize = 65536;
int bytesRead = -1;
byte[] bytes = new byte[bufferSize];
while ((bytesRead = sourceFile.Read(bytes, 0, bufferSize)) > 0)
{
destFile.Write(bytes, 0, bytesRead);
}
}
}
如果要使用FileStream,只需对源文件使用Open
e、 g
var fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
对于目标文件,您必须决定如果它存在会发生什么:
创建将允许您覆盖现有文件,前提是您拥有写入权限
CreateNew将在文件存在时抛出。同样,您需要写入权限
但是,正如其他人所写,您可以完全跳过FileStream并使用File命令
参考资料:如果要使用FileStream,只需对源文件使用打开即可
e、 g
var fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
对于目标文件,您必须决定如果它存在会发生什么:
创建将允许您覆盖现有文件,前提是您拥有写入权限
CreateNew将在文件存在时抛出。同样,您需要写入权限
但是,正如其他人所写,您可以完全跳过FileStream并使用File命令
参考:如果目标文件已经存在,您想做什么?那么,您想对该文件做什么?如果目标文件已经存在,您想做什么?那么,您想对该文件做什么?如果他必须通过网络套接字(FTP)传输数据,他不能使用文件
方法。@Scoregraphic:如果他要编写自己的FTP传输实现,他应该使用FtpWebRequest,而不是FileStream。如果他必须通过网络套接字(FTP)传输数据,他不能使用File
方法。@Scoregraphic:如果他要编写自己的FTP传输实现,他应该使用FtpWebRequest,而不是FileStream。