我正在构建一个数据传输工具,该工具可以部署到Windows或Linux Docker容器中,该容器必须指示SQL Server进行数据库快照。此外,SQL Server可能位于Windows或Linux上,我需要指定.ss文件在服务器上的 位置。我一直在使用Path.GetFilenameWithoutExtension
,Path.Combine
等,但是Path
操作是在应用运行所在的操作系统的上下文中完成的。我需要WindowsPath.Combine这样的东西才能运行在Linux上与Windows上的SQL Server实例通信时。现在,我自己进行字符串操作,但我更喜欢使用Path
或可能的目的构建的东西。我知道我正在运行的操作系统以及SQL Server正在运行的操作系统,只需要与操作系统无关的Path
。
答案 0 :(得分:0)
我认为您需要制作自己的静态函数类来执行Windows特定的路径操作。 “ C:\ MyDir \ MyFile.ext”实际上可以是Linux上文件的名称。
您可以查看.NET Path的各种实现,并且可以看到它只是在使用字符串操作:
https://github.com/microsoft/referencesource/blob/master/mscorlib/system/io/path.cs
我建议您从所需的方法开始。例如:
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
#kate: syntax Python ;
# use them like so:
import socket, os , time
parent, child = socket.socketpair()
#child.close() # bad fdesc
pid = os.fork()
if pid:
#time.sleep(0.3)
#child.close()
print 'in parent, sending message'
p = parent.sendall('ping p')
response1 = parent.recv(444)
print 'response from child :', response1
p = parent.close()
else:
#time.sleep(0.7)
#parent.close()
print 'in child, waiting for message'
message1 = child.recv(333)
print 'message from parent :', message1
child.sendall('päng c')
child.close()
#print "Ende" , pid
#print parent # , child
#print type(pid) , " -- " , type(child)