嗨,我试图获得一个Autodesk Navisworks (NWD)文件的内容。
以下是我想要做的事情的一个简单版本-
$fileCont = Get-Content -Path $filePath
New-Item C:\Temp\tom2.nwd
Set-Content C:\Temp\tom2.nwd $fileCont为了证明我可以成功地收集navisworks文件的内容。
虽然这是一个简单的工作流程,我试图实现的是更大的感谢这一点,如果我能弄清楚这一点,我知道其余的。
下面是我试图打开C:\Temp\tom2.nwd时的错误

发布于 2020-12-03 22:04:52
正确的是,此方法确实有效,但非常慢且不可用,但我现在可以通过遵循这个职位来确认这一点
我使用了以下方法来收集和发布文件中的数据。
write-host "Creting object in bucket.."
$B_Key = ''
write-host "Bucket Key ="$B_Key
write-host "File Content being uploaded to bucket object"
$currentDir = Get-Location
$sourceFile = [System.IO.Path]::Combine($currentDir, 'rac_basic_sample_project_pstest.rvt')
$fileName = [System.IO.Path]::GetFileName($SourceFile)
Set-ItemProperty -Path $sourceFile -Name IsReadOnly -Value $false
$Clen = Get-Item $sourceFile
$Clen = $Clen.Length
write-host $Clen
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "Bearer $token")
$headers.Add("Content-Type", "application/octet-stream")
$headers.Add("Content-Length", $CLen)
$CreateObj = 'https://developer.api.autodesk.com/oss/v2/buckets/'+$B_Key+'/objects/'+$fileName
$CreateObjAPIresult = Invoke-RestMethod -Uri $CreateObj -Method Put -Headers $headers -InFile $sourceFile
write-host "New Object Created in bucket"发布于 2020-12-01 22:48:42
默认情况下,Get-Content和Set-Content都只对文本进行操作。
要处理原始的字节 data --需要处理二进制文件格式(如.nwd )的内容--您需要使用:
-Encoding Byte-AsByteStream中注意:如果所有字节同时放入内存中,则可以通过添加Get-Content大大加快-Raw调用。
https://stackoverflow.com/questions/65098978
复制相似问题