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