vs中如何 将一个文件复制到另一个文件夹中, 需要导入命名空间吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs中如何 将一个文件复制到另一个文件夹中, 需要导入命名空间吗相关的知识,希望对你有一定的参考价值。
需要,导入System.IO。 使用File.Copy()函数操作。有两个参数,相信你能看的懂的。嘻嘻 参考技术A 如果是新建项目然后在打开的程序编辑框中复制程序语句还好,复制文件到另一个项目文件夹下,必须在解决方案资源管理器中添加现有项,把这个文件添加到项目工程里面。然后修改,当然你添加项目就是和其他项目产生联系,具体修改什么根据你的要求和下面的错误指示一步步改吧。 参考技术B C#的 复制是很淡腾的一件事 你用了后就明白了
将文件的内容复制到另一个文件中相对于文件末尾的位置
【中文标题】将文件的内容复制到另一个文件中相对于文件末尾的位置【英文标题】:Copying the contents of a file into another file at a point relative to the end of the file 【发布时间】:2017-02-23 07:08:38 【问题描述】:StackExchange 新手,如有错误请见谅。
我有一个输入文件,需要在最后一个字符之前复制到另一个文件中。
输入文件.txt:
input
"inputstuff"
filetowriteto.txt:
Stuff
foo
"foostuff"
bar
"barstuff"
运行脚本后,生成的文件现在应该是:
filetowriteto.txt:
Stuff
foo
"foostuff"
bar
"barstuff"
input
"inputstuff"
基本上,该脚本复制input
行集并将它们粘贴到filetowriteto.txt
中最后一个右括号之前。
脚本不能依赖行数,因为 filetowriteto.txt
没有可预测的 foo 或 bar 行数,而且我不知道如何使用 sed 或 awk 来做到这一点。
【问题讨论】:
【参考方案1】:试试:
$ awk 'FNR==NR if (NR>1) print last; last=$0; next print " " $0 ENDprint last' filetowriteto.txt inputfile.txt
Stuff
foo
"foostuff"
bar
"barstuff"
input
"inputstuff"
要更改文件:
awk 'FNR==NR if (NR>1) print last; last=$0; next print " " $0 ENDprint last' filetowriteto.txt inputfile.txt >tmp && mv tmp filetowriteto.txt
工作原理
FNR==NR if (NR>1) print last; last=$0; next
在读取第一个文件时,(a)如果我们不在第一行,打印last
的值,(b)将当前行的文本分配给last
,(c)跳过其余命令并跳转到next
行。
这使用了一个常见的 awk 技巧。条件FNR==NR
仅在我们读取第一个文件时为真。这是因为,在 awk 中,NR 是我们到目前为止读取的行数,而 FNR 是我们从当前文件读取的行数。因此,FNR==NR
仅在我们从第一个文件中读取时才为真。
print " " $0
在读取第二个文件时,用一些前导空格打印每一行。
ENDprint last
我们打印完第二个文件后,打印第一个文件的最后一行。
【讨论】:
【参考方案2】:给定:
$ cat /tmp/f1.txt
input
"inputstuff"
$ cat /tmp/f2.txt
Stuff
foo
"foostuff"
bar
"barstuff"
您可以使用command grouping 来实现:
$ ( sed '$d' f2.txt ; cat f1.txt ; tail -n1 f2.txt )
或(此版本不创建子shell)
$ sed '$d' f2.txt ; cat f1.txt ; tail -n1 f2.txt;
它是如何工作的?
sed '$d' f2.txt
打印除 f2.txt 的最后一行以外的所有内容
cat f1.txt
在该点打印 f1.txt
tail -n1 f2.txt
现在打印f2的最后一行
如果要缩进 f1.txt,请使用 sed 而不是 cat。也可以使用 sed 打印最后一行:
$ sed '$d' /tmp/f2.txt ; sed 's/^/ /' /tmp/f1.txt ; sed -n '$p' /tmp/f2.txt;
Stuff
foo
"foostuff"
bar
"barstuff"
input
"inputstuff"
然后,如果您愿意,可以使用>
重定向将分组的输出重定向到文件。
【讨论】:
【参考方案3】:$ cat tst.awk
NR==FNR
rec = (NR>1 ? rec ORS : "") $0
next
FNR>1
print prev
if ( sub(/[^[:space:]].*/,"",prev) )
indent = prev
prev=$0
END
gsub(ORS,ORS indent,rec)
print indent rec ORS prev
$ awk -f tst.awk inputfile.txt filetowriteto.txt
Stuff
foo
"foostuff"
bar
"barstuff"
input
"inputstuff"
上面使用要修改的文件最后一行之前的最后一个非空行的缩进来设置它正在插入的新文件的缩进。
【讨论】:
以上是关于vs中如何 将一个文件复制到另一个文件夹中, 需要导入命名空间吗的主要内容,如果未能解决你的问题,请参考以下文章
MFC中,如何将CBitmap中的图片复制到另一CBitmap的一块区域中,即如何读取一个CBit