我上班时使用 Windows XP,在家时使用 OS X。我在这两种操作系统上都使用 Firefox。我同步了某些文件夹,我喜欢将链接拖放到这些文件夹中以便稍后查看。在 XP 上,链接文件保存为 .url,而在 OS X 上,链接文件保存为 .webloc,并且这两种操作系统上的 Firefox 都无法使用对方使用的格式(.url 文件至少可以在 OS X 上的 Safari 中打开)。
我希望继续使用文件,而不必在电子邮件中保存链接或者在 delicious 之类的网站上。我还想继续在两种环境中使用 Firefox。有没有办法让任一操作系统上的 Firefox 都能容纳来自另一个操作系统的文件?也许是扩展或插件?我对哪种格式有效并不挑剔。理想情况下,我想保留这两种格式,因为我喜欢选择,但两种格式都可以。
答案1
与其将链接文件放入文件夹,为什么不在书签中创建另一个文件夹,以便以后查看这些链接呢?然后您可以在书签工具栏上显示该文件夹,并轻松地将链接放入其中。然后您可以使用标记跨平台、跨浏览器管理您的书签。
答案2
如果您在 Snow Leopard 中双击 .url 文件,它将在 Safari 中打开。要让它在 Firefox 中打开:
- 打开 Applescript 编辑器
- 粘贴下面的 Applescript(由此 Stack Overflow 帖子)
- 另存为应用程序
- 在 Finder 中,选择一个 .url 文件
Get Info
从文件菜单中选择- 在打开方式下指定此新应用程序
- 点击
Change All
,并确认操作
为了在 XP 中的 Firefox 中打开 .webloc 文件,我制作了一个 C# 应用程序:
- 打开 Visual Studio。Express 版本由 Microsoft 免费提供。
File
菜单 ->New
->Project
- 选择
Console Application
。命名。确定 - 在 中
Solution Explorer
,右键点击项目名称 ->Properties
- 输出类型:
Windows Application
。因此,当 Windows 打开控制台应用程序时,不会显示任何控制台窗口 - 将以下 C# 程序粘贴到
Program.cs
Build
菜单 ->Build Solution
- 双击 .webloc 文件。当系统询问使用哪个程序时,请从列表中选择,然后浏览到您刚刚创建的新 exe
Apple脚本:
on open the_droppings
set filePath to the_droppings
set fileContents to read filePath
set secondLine to paragraph 2 of fileContents
set tid to AppleScript's text item delimiters
set AppleScript's text item delimiters to "="
set URLstring to last text item of secondLine
set AppleScript's text item delimiters to tid
do shell script "/usr/bin/open -a Firefox.app " & quoted form of URLstring
end open
C# 应用程序:
using System;
using System.IO;
using System.Diagnostics;
using System.Xml;
class Program {
static void Main(string[] args) {
if (args == null || args.Length == 0 || Path.GetExtension(args[0]).ToLower() != ".webloc")
return;
string url = "";
XmlTextReader reader = new XmlTextReader(args[0]);
while (reader.Read()) {
if (reader.NodeType == XmlNodeType.Element && reader.Name == "string") {
reader.Read();
url = reader.Value;
break;
}
}
// I specify Firefox because I have weird demands for my work computer.
// To have it open in your default browser, change that line to this:
// Process.Start(url);
if (!String.IsNullOrEmpty(url))
Process.Start("Firefox", url);
}
}