我想问一下4D是否可以在网络目录上创建文档。例如:
vIP:="\\100.100.100.100" // this is a hypothetical IP
vPath:=vIP+"\storage\"
vDoc:=Create document(vPath+"notes.txt")
If(OK=1)
SEND PACKET(vDoc;"Hello World")
CLOSE DOCUMENT(vDoc)
End if
答案 0 :(得分:0)
这样做的一种方法是:
您可以将第二台计算机的驱动器映射到运行4d数据库的计算机。 然后这个驱动器就像一个本地驱动器。
例如: 我已经映射了一个名为" D"在远程机器上行驶,它变成了" W"在运行4D数据库的机器上运行。 那么你可以使用这段代码
c_Text(VPATH)
VPATH:=" W:\ VAR \ WWW ....." //临时路径.....
vDoc:=创建文档(vPath +" notes.txt")
如果(OK = 1)
SEND PACKET(vDoc;" Hello World")
关闭文件(vDoc)
如果
结束答案 1 :(得分:0)
我知道这是一个老问题,但是我们这里没有太多的四维编码员,所以我会为后人回答这个问题!
是的,你可以像这样在网络共享上创建一个文档,假设你有相应的权限。
在这种情况下,我认为你只需要小心你如何逃避道路。确保你的反斜杠加倍,以便代码块看起来像这样(注意IP地址和文件夹名称周围的额外反斜杠):
vIP:="\\\\100.100.100.100" // this is a hypothetical IP
vPath:=vIP+"\\storage\\"
vDoc:=Create document(vPath+"notes.txt")
If (OK=1)
SEND PACKET(vDoc;"Hello World")
CLOSE DOCUMENT(vDoc)
End if
希望这有帮助!
答案 2 :(得分:0)
是的,虽然没有文档,CREATE DOCUMENT
命令可以与有效UNC path 一起使用,前提是您有足够的权限在给定的路径上创建文档。
但是,您的示例代码存在问题。您的问题归结为您使用反斜杠\
字符。
反斜杠\
字符用于4D中的escape sequences,因此用于转义许多其他字符,因此它也必须自行转义。只需将示例代码中的所有反斜杠加倍\
到\\
即可纠正此问题。
您的示例代码:
vIP:="\\100.100.100.100" // this is a hypothetical IP
vPath:=vIP+"\storage\"
vDoc:=Create document(vPath+"notes.txt")
If(OK=1)
SEND PACKET(vDoc;"Hello World")
CLOSE DOCUMENT(vDoc)
End if
应该这样写:
vIP:="\\\\100.100.100.100" // this is a hypothetical IP
vPath:=vIP+"\\storage\\"
vDoc:=Create document(vPath+"notes.txt")
If(OK=1)
SEND PACKET(vDoc;"Hello World")
CLOSE DOCUMENT(vDoc)
End if
使用Test Path Name
确认路径有效,并且该文件不存在,可以进一步改进您的代码。然后,如果确实存在,您甚至可以使用Open Document
和Set Document Position
附加到文档,如下所示:
vIP:="\\\\100.100.100.100"
vPath:=vIP+"\\storage\\"
vDocPath:=vPath+"notes.txt"
If (Test path name(vPath)=Is a folder)
// is a valid path
If (Not(Test path name(vDocPath)=Is a document))
// document does not exist
vDoc:=Create document(vDocPath)
If (OK=1)
SEND PACKET(vDoc;"Hello World")
CLOSE DOCUMENT(vDoc)
End if
Else
// file already exists at location!
vDoc:=Open document(vDocPath)
If (OK=1)
SET DOCUMENT POSITION(vDoc;0;2) // position 0 bytes from EOF
SEND PACKET(vDoc;"\rHello Again World") // new line prior to Hello
CLOSE DOCUMENT(vDoc)
End if
End if
Else
// path is not valid!
ALERT(vPath+" is invalid")
End if