【发布时间】:2019-01-31 16:13:41
【问题描述】:
我正在 Visual Studio 2017 中制作压缩器/解压缩器控制台程序,我想通过将输入文件拖到控制台 (.txt) 来获取文件路径。
我得到了 Compress() 的 inputStream 的正确路径,但 outPutStream 失败并且找不到文件路径 (FileMode.OpenOrCreate!?!),即使路径是硬编码的。
如果两个变量都被硬编码,程序会正确执行,但我不明白为什么通过将输入文件从拖动文件到控制台并硬编码输出文件会引发 System.IO.FileNotFoundException。
....
string outPutFileName = @"C:\bla\bla\bla\bla\gergrgr.gzip";
public static void Compress(string inPath)
{
using (FileStream inputStream = new FileStream(inPath, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
using (FileStream outputStream = new FileStream(outPutFileName, FileMode.OpenOrCreate, FileAccess.Write))
{
using (GZipStream gzip = new GZipStream(outputStream, CompressionMode.Compress))
{
inputStream.CopyTo(gzip);
}
}
}
}
static void Main(string[] args)
{
string outPutFileName = @"C:\bla\bla\bla\bla\gergrgr.gzip";
//dummy var, cant find a better way to add '@' to variable set by console.readline
string filePath = @"test";
// info info info....
Console.WriteLine("Drag in txt file");
// Takes the path from dragged in file
string idk = Console.ReadLine();
// instead of of a loop to escape "/", just replace text in filePath
filePath = filePath.Replace("test", idk);
Compress(filePath);
}
【问题讨论】:
标签: c# .net compression console-application