将文件复制到文件夹
大家好,我先在论坛上搜索了一下,但没有找到任何与我的问题相关的东西。
我有一个lisp例程,其中程序的一部分只是从我的计算机中的文件夹中选择一个文件(使用GetField)并读取数据点。
我想知道是否有办法选择这个文件并将其复制到另一个文件夹?(有类似复印件的东西吗?)
基本上,我想做的是选取原始文件,将其复制到另一个文件夹中,在该文件夹中自动运行另一个程序(Autocad之外),该程序将文件转换为不同的文件类型,然后lisp将读取该特定文件并继续执行lisp例程。
我对Autolisp很陌生。希望这有意义。谢谢你的帮助。 (vl文件复制源目标)
示例:(vl文件副本(findfile“acad.cui”)“c:\\acad.cui”)
谢谢,我会试试的 谢谢alanjt,这很有效。
有没有办法用与原始文件相同的文件名自动保存复制的文件?
我得到的是:
因此,无论我从对话框中选择的原始文件是什么,它都被保存为“copiedfile.txt”。我想用原始文件名保存复制的文件。假设我从对话框中选择“10455.txt”,我希望复制的文件名相同。原始文件名几乎总是不同的数字。 有人可能会说这是一个小技巧,但它还是有帮助的:
(vl-cmdf "shell" (strcat "ren " "\"" "C:\\file.type" "\" \"" "newfilename.type" "\""))
“shell”命令的作用类似于Windows命令提示符,在本例中,您将向其发送“rename”函数。您只需要指定文件(具有完整目录)和新文件名。仔细注意重复了几次的“\”序列;这是有原因的。包含目录和文件名的文件必须在引号中,这意味着您需要使用引号的控制代码。
您还可以使用“shell”命令创建和修改目录。打开Windows命令提示符并键入“help”以查看可以使用的命令列表。 像这样:
(vl-file-copy SourceFile (strcat "c:\\" (vl-filename-base SourceFile) (vl-filename-extension SourceFile)))
谢谢大家。 你好。
新问题,相似主题。
现在,原始文件被复制到该文件夹中,正如我上面提到的,一个外部程序将其从。txt到a。dtc文件(保持相同的“文件名基”),然后删除。txt文件从文件夹中只留下。dtc。
所以我需要我的lisp例程说“等到.txt变成.dtc”(根据文件大小可能从5秒到5分钟不等),从该文件中读取数据,然后运行程序的其余部分。
我猜某种while循环应该可以做到这一点,但最好只等待文件出现所需的时间长度,而不是只等待指定的时间长度。
有什么办法吗?谢谢 实际上,有。
您可以使用(findfile…)搜索您要查找的确切文件然后把它放到一个空的while循环中。它看起来像这样:
基本上,循环将无限期地继续,直到找到文件,此时循环将结束,程序的其余部分将运行。
不过要小心,因为打破这个循环的唯一方法是让文件出现或点击“escape”退出。
我确信这不是最优雅的解决方案,但它可能是最快最简单的。 谢谢你的免费充值。这实际上是我做不到的“filepath/filename.dtc”位。我实际上不能在代码中指定文件名,因为每次运行程序时文件名都不一样。文件名前缀每次都是不同的数字。
所以我需要一些方法来引用“vl filename base”位。所以它应该是这样的:
while (not (findfile (strcat ("vl-filename-base' dtmfile) (vl-filename-extension "dtc")))
但很明显这行不通,我只是不知道怎么写。
页:
[1]
2