【问题标题】:copyfile ini to txt: permission-denied将文件 ini 复制到 txt:权限被拒绝
【发布时间】:2018-08-03 12:02:29
【问题描述】:

我只想将 ini 文件的内容复制到 txt 文件中。但它告诉我,该权限被拒绝。

  • 源文件已关闭
  • Ini 文件“Aly_complete.ini”之前是通过“java -jar”在代码中执行的
  • 如您所见,我已经尝试了另一个文件,之前的代码没有使用该文件

这里是代码

Sub Kopieren_Ini(strPathQuelle As String, strPathErg As String)
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim oFile As Object    
Dim Quelle As String
Dim Ziel As String

If Sheets(1).TxtBoxIni.Text <> "" Then
    Quelle = Sheets(1).TxtBoxIni.Text
Else
    Quelle = strPathQuelle & "Aly_MitDatum.ini"
    'Quelle = strPathQuelle & "Aly_complete.ini"
End If

Set oFile = fso.CreateTextFile(strPathErg & "\" & "Config_Test.txt")
Ziel = strPathErg & "\" & "Config_Test.txt"

FileSystem.FileCopy Quelle, Ziel

提前感谢您的帮助

【问题讨论】:

  • 听起来.ini 正被另一个应用程序或进程使用。还有什么在运行?重启后还会出现这种情况吗?
  • 为什么要创建一个文本文件,然后在上面复制另一个文件?我会完全跳过CreateTextFile
  • @ashleedawg:重启后还是会出现
  • @ErikvonAsmuth:要求将使用的ini文件中的输入数据保存在结果文件夹中。但它不应保存为ini文件,因为它只是用于文档。
  • 所以,您只是想复制一个文件并更改其名称,对吗?

标签: vba ms-access permission-denied file-copying


【解决方案1】:

听起来.ini 正被另一个应用程序或进程使用。还有什么在运行?重启后还会出现这种情况吗? (来源:my comment☺)

你的代码不完整(它没有结束)所以我不能肯定地说,但我敢打赌你的问题是同样的常见错误,[imho] 是几乎所有投诉的罪魁祸首由 VBA 代码引起的 Excel 崩溃...

就像父母总是告诉他们的孩子:

在您.Close 之前,该文件处于打开状态(并被锁定并占用内存)。

打开的对象需要关闭并清除。

尝试将这 3 行添加到代码的末尾(或者在您使用完对象的地方):

oFile.Close
Set oFile = Nothing
Set fso = Nothing

...然后保存您的工作,重新启动,然后再试一次。


更多信息:


编辑:“复制和重命名”

如果您只需要复制文件(同时重命名副本),请使用以下命令:

Option Explicit

Sub copyFile()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.copyFile "c:\sourcePath\sourceFile.ini", "c:\destinationPath\destFile.txt"
    Set fso = Nothing
End Sub

更多更多信息:

【讨论】:

  • 哦...@Erik 也说了...
  • 谢谢!我不知道,我也必须关闭 oFile。
  • 这是一个非常常见的错误。 ...如果 Excel 在运行 VBA 时崩溃了,请先检查“未关闭”对象——我还没有看到或听说过 Excel 崩溃(在运行 VBA 时),这与 memory leak 由错误处理对象引起。
  • 哦,这是Copying & Moving Files with VBA上的一个很好的参考。
  • 请注意,您的整个 sub 可以最小化为一行:CreateObject("Scripting.FileSystemObject").copyFile "c:\sourcePath\sourceFile.ini", "c:\destinationPath\destFile.txt",而不会影响功能。由于从未声明过fso,因此不需要销毁它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 2011-08-24
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
  • 2012-11-24
相关资源
最近更新 更多