C# 更改下载的文件目录
C# Change downloaded file directory
我有以下代码,它将从 stream
检索数据并使用 streamwriter
和 bufferedwriter 将其打印到文本文件。默认情况下,它会将文件下载到本地 pc 的下载文件夹目录中。我现在面临的问题是我想将下载文件的目录更改为其他目录,但我无法实现这些。相反,我使用 System.IO.File.WriteAllText
来实现这些,但这不是我想要的,因为下面的代码将下载两个文件,一个在下载文件夹中,另一个在文档文件夹中。
protected override void AddPlainText(Stream outputStream)
{
var records = GetData();
var x = new StringBuilder();
string stamp = DateTime.Now.ToString("dd-MM-yy_HH-mm-ss", CultureInfo.InvariantCulture);
string fileName = "reportTxt_" + stamp + ".txt";
string path = @"C://Users//***//Documents//";
string path2 = @"C:\Users\***\Documents\";
using (var stream = new BufferedStream(outputStream))
{
var writer = new StreamWriter(stream, Encoding.ASCII);
foreach (var r in records)
{
x.AppendLine(r.ToFixedLengthString());
}
var output = x.ToString();
writer.WriteLine(output);
writer.Flush();
//Create File
System.IO.File.WriteAllText(path + fileName, output);
//Calling Transfer Method
SFTP_Connection(fileName, path2);
//Delete file after transfer
if (File.Exists(path + fileName))
{
File.Delete(path + fileName);
}
}
}
我们将不胜感激任何建议、提示和帮助。
根据你的描述,我想你可能误以为数据是从流中读取的,事实上,在代码片段中,流被用来写入.
首先,从此调用中检索数据
var records = GetData();
然后将数据转换成字符串,字符串用一个StreamWriter
写到BufferedStream
,最后写到outputStream
。
(BufferedStream
用作缓冲区 - 因此名称 'BufferedStream' - 为了提高写操作的性能。)
所以一种可能是 outputStream
是由调用者创建的 FileStream
,它是在 Downloads 文件夹中创建的。
如果是这种情况,你不需要通过outputStream
,事实上,一开始就不要创建它!
删除不需要的流后,这就是您所需要的
var records = GetData();
var x = new StringBuilder();
string stamp = DateTime.Now.ToString("dd-MM-yy_HH-mm-ss", CultureInfo.InvariantCulture);
string fileName = "reportTxt_" + stamp + ".txt";
string path = @"C://Users//***//Documents//";
string path2 = @"C:\Users\***\Documents\";
foreach (var r in records)
{
x.AppendLine(r.ToFixedLengthString());
}
//Create File
System.IO.File.WriteAllText(path + fileName, output);
//Calling Transfer Method
SFTP_Connection(fileName, path2);
//Delete file after transfer
if (File.Exists(path + fileName))
{
File.Delete(path + fileName);
}
另一种可能性是调用 SFTP_Connection
在 Downloads 文件夹中创建一个中间文件。确认调用的实现。
您需要进入 (F10/F11) 代码以检查在哪一行创建了不需要的文件。
我有以下代码,它将从 stream
检索数据并使用 streamwriter
和 bufferedwriter 将其打印到文本文件。默认情况下,它会将文件下载到本地 pc 的下载文件夹目录中。我现在面临的问题是我想将下载文件的目录更改为其他目录,但我无法实现这些。相反,我使用 System.IO.File.WriteAllText
来实现这些,但这不是我想要的,因为下面的代码将下载两个文件,一个在下载文件夹中,另一个在文档文件夹中。
protected override void AddPlainText(Stream outputStream)
{
var records = GetData();
var x = new StringBuilder();
string stamp = DateTime.Now.ToString("dd-MM-yy_HH-mm-ss", CultureInfo.InvariantCulture);
string fileName = "reportTxt_" + stamp + ".txt";
string path = @"C://Users//***//Documents//";
string path2 = @"C:\Users\***\Documents\";
using (var stream = new BufferedStream(outputStream))
{
var writer = new StreamWriter(stream, Encoding.ASCII);
foreach (var r in records)
{
x.AppendLine(r.ToFixedLengthString());
}
var output = x.ToString();
writer.WriteLine(output);
writer.Flush();
//Create File
System.IO.File.WriteAllText(path + fileName, output);
//Calling Transfer Method
SFTP_Connection(fileName, path2);
//Delete file after transfer
if (File.Exists(path + fileName))
{
File.Delete(path + fileName);
}
}
}
我们将不胜感激任何建议、提示和帮助。
根据你的描述,我想你可能误以为数据是从流中读取的,事实上,在代码片段中,流被用来写入.
首先,从此调用中检索数据
var records = GetData();
然后将数据转换成字符串,字符串用一个StreamWriter
写到BufferedStream
,最后写到outputStream
。
(BufferedStream
用作缓冲区 - 因此名称 'BufferedStream' - 为了提高写操作的性能。)
所以一种可能是 outputStream
是由调用者创建的 FileStream
,它是在 Downloads 文件夹中创建的。
如果是这种情况,你不需要通过outputStream
,事实上,一开始就不要创建它!
删除不需要的流后,这就是您所需要的
var records = GetData();
var x = new StringBuilder();
string stamp = DateTime.Now.ToString("dd-MM-yy_HH-mm-ss", CultureInfo.InvariantCulture);
string fileName = "reportTxt_" + stamp + ".txt";
string path = @"C://Users//***//Documents//";
string path2 = @"C:\Users\***\Documents\";
foreach (var r in records)
{
x.AppendLine(r.ToFixedLengthString());
}
//Create File
System.IO.File.WriteAllText(path + fileName, output);
//Calling Transfer Method
SFTP_Connection(fileName, path2);
//Delete file after transfer
if (File.Exists(path + fileName))
{
File.Delete(path + fileName);
}
另一种可能性是调用 SFTP_Connection
在 Downloads 文件夹中创建一个中间文件。确认调用的实现。
您需要进入 (F10/F11) 代码以检查在哪一行创建了不需要的文件。