XOJO简单文件拷贝



我正在努力完成的非常基本的事情。

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

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

有什么想法吗?

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

通常,folderitem类是通过使用GetFolderItem方法初始化的:

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

这个基本函数在与可执行文件相同的目录中查找pdf文件。如果文件在其他地方,您可以使用绝对路径,如"C:\SomeFolder/somefile.pdf"。

有一些禁止访问的位置(应用程序数据、首选项等),最简单的方法是使用SpecialFolders对象。如果你的文件在应用程序数据文件夹中,你会访问它:

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

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

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

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

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

如果你不习惯面向对象的语法,就把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)
FolderItem类可以表示机器上的任何文件或文件夹。要为特定的绝对路径创建FolderItem实例,请将路径传递给GetFolderItem方法并存储结果:
Dim SourceFile As FolderItem
SourceFile = GetFolderItem("C:ExampleFolderExampleFile.txt", PathTypeAbsolute)

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

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

例如,

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

或者,使用SpecialFolder模块:

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

或者,使用应用程序类的ExecutableFile属性的父文件夹:

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

一旦设置了源和目标FolderItems,只需调用源FolderItem:的CopyFileTo或MoveFileTo方法

Dim SourceFile As FolderItem
SourceFile = GetFolderItem("C:ExampleFolderExampleFile.txt", PathTypeAbsolute)
Dim destination As FolderItem
destination = GetFolderItem("C:DestinationExample", PathTypeAbsolute)
SourceFile.MoveFileTo(destination)
' or
SourceFile.CopyFileTo(destination)

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

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

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

C:UsersMitchMatchDesktopmyPicture.png

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

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

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

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

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

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

Dim s as new shell
s.execute("Copy c:UsersMitchMatchDesktopmyPicture.png c:UsersMitchMatchPictures")

在Mac OS X和Linux上,命令为CP。请注意,与Xojo CopyFileTo命令相反,系统功能可以复制整个目录。

相关内容

  • 没有找到相关文章

最新更新