假设有一个功能
public void UploadSomewhere(FileStream fs)
如果我使用FileStream它还不足以指向文件路径,我还需要选择FileMode
,如果您只是复制/移动文件,我不确定什么是正确的FileMode。有什么想法吗?
答案 0 :(得分:2)
如果您想要使用FileStream,您只需使用打开作为源文件。
例如,
var fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
对于目标文件,您必须决定如果存在会发生什么:
如果您拥有写入权限,创建将允许您覆盖现有文件。
如果文件存在,CreateNew 将抛出。同样,您需要写入权限。
但是,正如其他人所写,你可以完全跳过FileStream并使用File命令。
参考:http://msdn.microsoft.com/en-us/library/system.io.filemode.aspx
答案 1 :(得分:1)
如果您只是处理/移动文件,并且您已知道路径(根据我从问题中理解的那样),您根本不需要FieStream
。使用File.Move
或File.Copy
函数就足够了。
答案 2 :(得分:0)
请参阅http://msdn.microsoft.com/en-us/library/system.io.filemode.aspx
如果您只需要阅读该文件,我建议FileMode.Open
答案 3 :(得分:0)
答案 4 :(得分:0)
如果您想使用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);
}
}
}