如何从目录中读取所有文件并将文件移动到正在进行的 openge 4gl 中的另一个目录?
How to read all the files from a directory and move files to another directory in progress openedge 4gl?
我需要一次读取一个文件夹中所有文件的内容,读取后将文件移动到另一个文件夹。
我已经硬编码读取单个文件。
将文件 "E:\New\a.txt" 中的 lob 复制到 c-edistring .
假设有三个文件 a.txt , b.txt , c.txt .
读取 a.txt 后,应将文件移动到另一个文件夹 E:\Old。其次是 b 和 c 。
INPUT FROM OS-DIR 语句允许您检索文件夹中所有文件的列表。
DEFINE VARIABLE cFileShort AS CHARACTER NO-UNDO .
DEFINE VARIABLE cFileLong AS CHARACTER NO-UNDO.
DEFINE VARIABLE cType AS CHARACTER NO-UNDO.
INPUT FROM OS-DIR ("e:\New") .
REPEAT:
IMPORT cFileShort cFileLong cType .
/* File or Directory ? */
IF cType MATCHES "*F*" THEN
MESSAGE "ShortFileName" cFileShort SKIP
"LongFileName" cFileLong .
END.
要移动文件,您不需要使用 COPY-LOB,它将文件内容复制到内存中。
OS-COPY VALUE (cFileLong) VALUE (SUBSTITUTE ("e:\Old\&1", cFileShort) .
IF OS-ERROR = 0 THEN
OS-DELETE VALUE (cFileLong) .
在上面的循环中,将在不将完整文件读入内存的情况下进行移动。
当您可以依靠 .NET(Windows、OpenEdge 10.2B 及更高版本)时,您也可以使用 .NET 类 进行文件操作,类似于 https://msdn.microsoft.com/en-us/library/cc148994(v=vs.100).aspx
几年前我写了一个工具程序来做你想做的事——你可以在这里得到一份副本:
https://community.progress.com/community_groups/openedge_general/w/openedgegeneral/1615.directory-tools
我需要一次读取一个文件夹中所有文件的内容,读取后将文件移动到另一个文件夹。 我已经硬编码读取单个文件。 将文件 "E:\New\a.txt" 中的 lob 复制到 c-edistring .
假设有三个文件 a.txt , b.txt , c.txt .
读取 a.txt 后,应将文件移动到另一个文件夹 E:\Old。其次是 b 和 c 。
INPUT FROM OS-DIR 语句允许您检索文件夹中所有文件的列表。
DEFINE VARIABLE cFileShort AS CHARACTER NO-UNDO .
DEFINE VARIABLE cFileLong AS CHARACTER NO-UNDO.
DEFINE VARIABLE cType AS CHARACTER NO-UNDO.
INPUT FROM OS-DIR ("e:\New") .
REPEAT:
IMPORT cFileShort cFileLong cType .
/* File or Directory ? */
IF cType MATCHES "*F*" THEN
MESSAGE "ShortFileName" cFileShort SKIP
"LongFileName" cFileLong .
END.
要移动文件,您不需要使用 COPY-LOB,它将文件内容复制到内存中。
OS-COPY VALUE (cFileLong) VALUE (SUBSTITUTE ("e:\Old\&1", cFileShort) .
IF OS-ERROR = 0 THEN
OS-DELETE VALUE (cFileLong) .
在上面的循环中,将在不将完整文件读入内存的情况下进行移动。
当您可以依靠 .NET(Windows、OpenEdge 10.2B 及更高版本)时,您也可以使用 .NET 类 进行文件操作,类似于 https://msdn.microsoft.com/en-us/library/cc148994(v=vs.100).aspx
几年前我写了一个工具程序来做你想做的事——你可以在这里得到一份副本: https://community.progress.com/community_groups/openedge_general/w/openedgegeneral/1615.directory-tools