Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将文件数据转换为字符串,反之亦然?_C#_File_Base64_Tobase64string - Fatal编程技术网

C# 如何将文件数据转换为字符串,反之亦然?

C# 如何将文件数据转换为字符串,反之亦然?,c#,file,base64,tobase64string,C#,File,Base64,Tobase64string,假设我有一个带密码保护的.xlsx文件,我想将其转换为字符串格式,然后在以后能够将字符串重建回原始的.xlsx文件时保留所有属性(例如密码保护…) 我尝试将扩展名从.xlsx更改为.txt,传输.txt的字符串内容,然后将.txt更改回.xlsx。。。但是文件会被破坏。。。有什么想法吗 我希望我的问题足够清楚 谢谢将文件编码为base64格式。然后将其解码为以前的格式。将文件编码为base64格式。而不是把它解码成以前的样子 我想把它转换成字符串格式 首先,我鼓励你不要这样做,除非你真的需要。转

假设我有一个带密码保护的.xlsx文件,我想将其转换为字符串格式,然后在以后能够将字符串重建回原始的.xlsx文件时保留所有属性(例如密码保护…)

我尝试将扩展名从.xlsx更改为.txt,传输.txt的字符串内容,然后将.txt更改回.xlsx。。。但是文件会被破坏。。。有什么想法吗

我希望我的问题足够清楚


谢谢

将文件编码为base64格式。然后将其解码为以前的格式。

将文件编码为base64格式。而不是把它解码成以前的样子

我想把它转换成字符串格式

首先,我鼓励你不要这样做,除非你真的需要。转换次数越多,出错的空间就越大

然而,如果你真的需要的话,这并不是很难做到——你正在寻找的是base64编码,它可以将任意二进制数据编码成ASCII文本——然后你可以将文本解码回二进制数据

下面是示例C#代码:

publicstaticvoidbase64encodefile(stringinputfile,stringoutputfile)
{
byte[]data=File.ReadAllBytes(inputFile);
字符串文本=Convert.tobase64字符串(数据);
writealText(输出文件,文本);
}
公共静态void Base64DecodeFile(字符串输入文件、字符串输出文件)
{
string text=File.ReadAllText(inputFile);
字节[]数据=Convert.FromBase64String(文本);
File.writealBytes(输出文件,数据);
}
我想把它转换成字符串格式

首先,我鼓励你不要这样做,除非你真的需要。转换次数越多,出错的空间就越大

然而,如果你真的需要的话,这并不是很难做到——你正在寻找的是base64编码,它可以将任意二进制数据编码成ASCII文本——然后你可以将文本解码回二进制数据

下面是示例C#代码:

publicstaticvoidbase64encodefile(stringinputfile,stringoutputfile)
{
byte[]data=File.ReadAllBytes(inputFile);
字符串文本=Convert.tobase64字符串(数据);
writealText(输出文件,文本);
}
公共静态void Base64DecodeFile(字符串输入文件、字符串输出文件)
{
string text=File.ReadAllText(inputFile);
字节[]数据=Convert.FromBase64String(文本);
File.writealBytes(输出文件,数据);
}

我同意base64是一种可行的方法,但重要的是要注意,这不是加密——它根本不是像这样“隐藏”数据。我不想加密或保护任何数据,实际上,我只是想传输文件格式的字符串版本(例如.xlsx)然后在所有内容/属性完好无损的情况下重建它。@AliAlnuaimi这不是出于安全原因。这只是为了将所有内容转换为字符串,然后从中恢复文件。@AliAlnuaimi:我理解。我只是想让阅读答案的人明白,base64编码不是一种加密形式。@JonSkeet我用encode替换了encrypt。谢谢你的提示。我同意base64是一个不错的选择,但重要的是要注意,这不是加密——它根本不是像这样“隐藏”数据。我不想加密或保护任何数据,实际上,我只是想传输文件格式的字符串版本(例如.xlsx)然后在所有内容/属性完好无损的情况下重建它。@AliAlnuaimi这不是出于安全原因。这只是为了将所有内容转换为字符串,然后从中恢复文件。@AliAlnuaimi:我理解。我只是想让阅读答案的人明白,base64编码不是一种加密形式。@JonSkeet我用encode替换了encrypt。谢谢你的提示。