c# 文件用 .gzip 压缩
c# file compress with .gzip
我正在尝试使用 GZIP 压缩文件,我的应用程序会监视文件夹中的新文件。当一个新文件进来时,它应该被压缩,然后每当一个新文件进入文件夹时应用程序应该继续这样做。
private void Compress(string filePath)
{
using (FileStream inputStream = new FileStream(filePath,FileMode.OpenOrCreate,FileAccess.ReadWrite))
{
using (FileStream outputStream = new FileStream(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"C:\Users\maki\Desktop\Input"), FileMode.OpenOrCreate, FileAccess.ReadWrite))//'System.UnauthorizedAccessException'
{
using (GZipStream gzip = new GZipStream(outputStream, CompressionMode.Compress))
{
inputStream.CopyTo(gzip);
}
}
}
}
当我执行应用程序时,出现此异常:
An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll
附加信息:
Access to the path 'C:\Users\maki\Desktop\Input' is denied.
我在互联网上搜索了很多,但找不到合适的答案。
谁能帮我解决问题?
您的问题可能与文件流的实例化方式有关。在您的代码中,您将路径与 Path.Combine 方法与另一个完全限定的路径组合在一起。
请看下面的代码。另一个问题可能与硬编码路径有关。文件名为 Input 还是 Input.gz?另请注意堆叠 using 语句以减少嵌套的能力。
private void Compress(string filePath)
{
using (FileStream inputStream =
new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite))
using (FileStream outputStream =
new FileStream(@"C:\Users\maki\Desktop\Input",
FileMode.OpenOrCreate, FileAccess.ReadWrite))
using (GZipStream gzip = new GZipStream(outputStream, CompressionMode.Compress))
{
inputStream.CopyTo(gzip);
}
}
我正在尝试使用 GZIP 压缩文件,我的应用程序会监视文件夹中的新文件。当一个新文件进来时,它应该被压缩,然后每当一个新文件进入文件夹时应用程序应该继续这样做。
private void Compress(string filePath)
{
using (FileStream inputStream = new FileStream(filePath,FileMode.OpenOrCreate,FileAccess.ReadWrite))
{
using (FileStream outputStream = new FileStream(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"C:\Users\maki\Desktop\Input"), FileMode.OpenOrCreate, FileAccess.ReadWrite))//'System.UnauthorizedAccessException'
{
using (GZipStream gzip = new GZipStream(outputStream, CompressionMode.Compress))
{
inputStream.CopyTo(gzip);
}
}
}
}
当我执行应用程序时,出现此异常:
An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll
附加信息:
Access to the path 'C:\Users\maki\Desktop\Input' is denied.
我在互联网上搜索了很多,但找不到合适的答案。
谁能帮我解决问题?
您的问题可能与文件流的实例化方式有关。在您的代码中,您将路径与 Path.Combine 方法与另一个完全限定的路径组合在一起。
请看下面的代码。另一个问题可能与硬编码路径有关。文件名为 Input 还是 Input.gz?另请注意堆叠 using 语句以减少嵌套的能力。
private void Compress(string filePath)
{
using (FileStream inputStream =
new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite))
using (FileStream outputStream =
new FileStream(@"C:\Users\maki\Desktop\Input",
FileMode.OpenOrCreate, FileAccess.ReadWrite))
using (GZipStream gzip = new GZipStream(outputStream, CompressionMode.Compress))
{
inputStream.CopyTo(gzip);
}
}