我假设(我们都知道你得到了什么)My.Computer.Filesystem指向exe安装的位置。大多数时候,这个前提都是正确的。但是,偶尔它指向C:\ Windows \ System32并且由于权限我的代码失败。
那么它真正指向哪里以及为什么会有差异?
由于
答案 0 :(得分:2)
不使用相对路径而是使用Path.Combine()
和Application.StartupPath
。后者将获得启动.exe的目录。
public class CompressedContent : HttpContent
{
private HttpContent originalContent;
protected override bool TryComputeLength(out long length)
{
length = -1;
return false;
}
protected override Task SerializeToStreamAsync(Stream stream, TransportContext context)
{
Stream editedStream = null;
if (encodingType == "gzip")
{
editedStream = new GZipStream(stream, CompressionMode.Compress, leaveOpen: true);
}
else if (encodingType == "deflate")
{
editedStream = new DeflateStream(stream, CompressionMode.Compress, leaveOpen: true);
}
return originalContent.CopyToAsync(editedStream).ContinueWith(tsk =>
{
if (editedStream != null)
{
editedStream.Dispose();
}
});
}
}