1

我想要完成的非常基本的事情。

A 具有存储为字符串(简单路径)的文件(图像)源。

我想将该文件复制到自定义目标。更准确地说是位于应用程序根目录中的文件夹名称图像。我检查了文档,所有这些都引用了 FolderItem 类,不幸的是,我无法弄清楚。

有任何想法吗?

4

4 回答 4

1

如果您不习惯面向对象的语法,只需将 FolderItem 视为复制命令所在的位置。所以在下面,我们创建了两个 FolderItem 对象:一个用于源文件,一个用于目标文件夹。完成后,我们可以使用 FolderItem 的 CopyFileTo() 方法复制文件:

dim s as String
dim source as FolderItem
dim dest as FolderItem

s="C:\test.jpg"
source=GetFolderItem(s)

dest=GetFolderItem("C:\image")

source.CopyFileTo(dest)
于 2013-07-13T21:34:41.447 回答
1

FolderItem 类可以表示机器上的任何文件或文件夹。要为特定绝对路径创建 FolderItem 实例,请将路径传递给GetFolderItem方法并存储结果:

Dim SourceFile As FolderItem
SourceFile = GetFolderItem("C:\ExampleFolder\ExampleFile.txt", PathTypeAbsolute)

构建完 FolderItem 后,您可以修改其属性并调用其方法来影响对基础文件或目录的更改。

要将文件复制或移动到另一个目录,您需要获取一个表示目标目录的 FolderItem。根据目标,您可以使用多种方法之一来获取目标 FolderItem。

例如,

Dim destination As FolderItem
destination = GetFolderItem("C:\DestinationExample\", PathTypeAbsolute)

或者,使用SpecialFolder模块:

destination = SpecialFolder.Desktop 'the user's desktop directory

或者,使用App 类的ExecutableFile 属性文件夹:

destination = App.ExecutableFile.Parent 'your app's directory

设置好源和目标 FolderItem 后,只需调用源 FolderItem 的CopyFileToMoveFileTo方法:

Dim SourceFile As FolderItem
SourceFile = GetFolderItem("C:\ExampleFolder\ExampleFile.txt", PathTypeAbsolute)

Dim destination As FolderItem
destination = GetFolderItem("C:\DestinationExample\", PathTypeAbsolute)

SourceFile.MoveFileTo(destination)
' or
SourceFile.CopyFileTo(destination)

请注意,CopyFileTo 和 MoveFileTo 方法不能用于移动或复制目录,只能用于移动或复制文件。

于 2013-07-14T00:28:28.187 回答
1

FolderItem 类有一个内置的 FileCopy 方法,我建议学习 FolderItem,因为从长远来看,它使文件处理变得更加容易,因为它确实是 Xojo/Real Studio 中唯一的方法。

通常使用 GetFolderItem 方法初始化文件夹项类:

dim f as folderitem = GetFolderItem("somefile.pdf")

此基本功能在与可执行文件相同的目录中查找 pdf 文件。如果文件在其他地方,您可以使用“C:/SomeFolder/somefile.pdf”之类的绝对路径。

有一些被禁止访问的位置(应用程序数据、首选项等),访问它们的最简单方法是使用 SpecialFolders 对象。如果您的文件位于 Application Data 文件夹中,您可以访问它:

dim f as folderitem = SpecialFolder.ApplicationData.child("somefile.pdf")

SpecialFolder.ApplicationData 返回一个文件夹项,子项查找该文件。Folderitem 子方法和父方法对于学习非常重要。

在https://docs.xojo.com/index.php/GetFolderItem有很多关于如何使用 GetFolderItem 的示例

SpecialFolder 在https://docs.xojo.com/index.php/SpecialFolder解释

如果您想要视频培训,订阅者可以在http://www.bkeeney.com/XojoTraining/xojotraining.cgi获得超过 40 小时的 Real Studio 和 Xojo 培训

于 2013-07-13T15:56:54.580 回答
1

文件夹项是一种表示路径的方式,与操作系统细节无关。例如,如果您计划为 Windows 和 Mac 或 Linux 创建应用程序,这一点很重要。

在 Windows 中,典型的路径表示为

C:\Users\MitchMatch\Desktop\myPicture.png

在 Mac OS X 或 Linux 中,相同的路径将是:

C:/Users/MitchMatch/Desktop/myPicture.png

FolderItem 还提供了直接访问桌面的方法:

Dim f as folderItem = SpecialFolder.Desktop.Child("myPicture.png")

要复制文件,可以使用 Xojo 内置的 FolderItem.CopyFileTo 方法,或者 shell 到系统,并使用命令行。

例如,在 Windows 上,您可以使用

Dim s as new shell
s.execute("Copy c:\Users\MitchMatch\Desktop\myPicture.png c:\Users\MitchMatch\Pictures")

在 Mac OS X 和 Linux 上,命令是 CP。请注意,与 Xojo CopyFileTo 命令相反,系统函数能够复制整个目录。

于 2015-09-16T18:39:35.920 回答